@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/noto-sans-sc-chinese-simplified-300-normal-Yr163UWa.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-300-normal-BJ_btOXu.woff) format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-sans-sc-chinese-simplified-400-normal-Ba7eOkfT.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-400-normal-DUWMQbbw.woff) format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/noto-sans-sc-chinese-simplified-500-normal-z_irmif2.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-500-normal-Du6iXQtI.woff) format("woff")}@font-face{font-family:Noto Sans SC;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-sans-sc-chinese-simplified-700-normal-DoUziBww.woff2) format("woff2"),url(/assets/noto-sans-sc-chinese-simplified-700-normal-DdQ4H5Ol.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-sc-chinese-simplified-400-normal-hudUdRP0.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-400-normal-Bjln_Ehj.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-sc-chinese-simplified-700-normal-B9DMK6uu.woff2) format("woff2"),url(/assets/noto-serif-sc-chinese-simplified-700-normal-C-z4U8v-.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:400;src:url(/assets/noto-serif-sc-latin-400-normal-bWtu-bD9.woff2) format("woff2"),url(/assets/noto-serif-sc-latin-400-normal-TDAhzw_V.woff) format("woff")}@font-face{font-family:"Noto Serif SC";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-sc-latin-700-normal-CJ4TiP3v.woff2) format("woff2"),url(/assets/noto-serif-sc-latin-700-normal-Dwdbd-fz.woff) format("woff")}@font-face{font-family:"Noto Serif TC";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-tc-chinese-traditional-700-normal-CplHwGhL.woff2) format("woff2"),url(/assets/noto-serif-tc-chinese-traditional-700-normal-aY43PamL.woff) format("woff")}@font-face{font-family:"Noto Serif TC";font-style:normal;font-display:swap;font-weight:900;src:url(/assets/noto-serif-tc-chinese-traditional-900-normal-D56GMwqp.woff2) format("woff2"),url(/assets/noto-serif-tc-chinese-traditional-900-normal-Bd_4s1T2.woff) format("woff")}@font-face{font-family:"Noto Serif TC";font-style:normal;font-display:swap;font-weight:700;src:url(/assets/noto-serif-tc-latin-700-normal-DdLtsr--.woff2) format("woff2"),url(/assets/noto-serif-tc-latin-700-normal-H4sp3dKf.woff) format("woff")}@font-face{font-family:"Noto Serif TC";font-style:normal;font-display:swap;font-weight:900;src:url(/assets/noto-serif-tc-latin-900-normal-B4xHBD2b.woff2) format("woff2"),url(/assets/noto-serif-tc-latin-900-normal-DM4Sr3JO.woff) format("woff")}@font-face{font-family:Satoshi;src:url(/fonts/satoshi/Satoshi-Variable.woff2) format("woff2-variations"),url(/fonts/satoshi/Satoshi-Variable.woff2) format("woff2");font-weight:300 900;font-style:normal;font-display:swap}:root{--font-sans: "Satoshi", "Noto Sans SC", "Source Han Sans SC", sans-serif;--font-serif: "Noto Serif SC", "Source Han Serif SC", serif;--font-serif-tw: "Noto Serif TC", "Source Han Serif TW", serif;--wht: #ffffff;--blk: #1e4d5c;--grey: #8aaeb4;--ink: var(--blk);--ink-mid: #3a5860;--ink-soft: #444444;--ink-pale: #d6dadb;--surface-tint: #f0f8fa;--surface-tint-2: #ccdfe3;--surface-warm: #c9c5bd;--placeholder-img: #cccccc;--line-faint: rgba(138, 174, 180, .14);--line-soft: rgba(138, 174, 180, .22);--line-medium: rgba(138, 174, 180, .35);--line-bold: rgba(138, 174, 180, .5);--scroll-thumb-soft: #dddddd;--scroll-thumb: #cccccc;--scroll-thumb-brand: #a0c8ce;--accent-green: #94d4a8;--accent-cyan: #34acc2;--accent-warning: #c05050;--accent-grad: linear-gradient(135deg, var(--accent-green) 0%, var(--accent-cyan) 100%);--overlay-faint: rgba(30, 77, 92, .18);--overlay-light: rgba(30, 77, 92, .22);--overlay-mid: rgba(30, 77, 92, .5);--overlay-deep: rgba(30, 77, 92, .88);--lightbox-bg: rgba(0, 0, 0, .88);--topbar: clamp(42px, 3.05vw, 62px);--pad: clamp(28px, 2.1vw, 44px);--home-w: clamp(130px, 10vw, 210px);--home-h: clamp(240px, 17.8vw, 370px);--home-r: 2px;--bar-w: clamp(28px, 2.05vw, 44px);--bar-h: clamp(360px, 26.6vw, 550px);--bar-r: 2px;--morph-w: var(--home-w);--morph-h: var(--home-h);--morph-x: 0px;--morph-y: var(--home-morph-y);--morph-r: var(--home-r);--content-gap: clamp(28px, 2.1vw, 44px);--content-right: clamp(28px, 2.1vw, 44px);--ext-bottom: 0px;--home-morph-y: clamp(-52px, -2.46vw, -34px);--home-morph-y-abs: clamp(34px, 2.46vw, 52px);--subpage-morph-y-abs: clamp(40px, 2.93vw, 60px);--gap-tb: clamp(6px, .47vw, 10px);--gap-bt: clamp(18px, 1.41vw, 30px);--proj-bar-abs-w: clamp(340px, 80vw, 1400px);--proj-bar-y-abs: calc(50vh - var(--topbar)/2 - var(--bar-w)/2 - 6px);--proj-link-gap: clamp(12px, 1vw, 18px);--proj-link-total: clamp(28px, 2vw, 40px);--detail-header-h: clamp(48px, 3.4vw, 64px);--morph-duration: .8s;--hit-target: 44px}#main[data-ui-state=home]{--morph-w: var(--home-w);--morph-h: var(--home-h);--morph-x: 0px;--morph-y: var(--home-morph-y);--morph-r: var(--home-r)}#main[data-ui-state=about]{--morph-w: var(--bar-w);--morph-h: var(--bar-h);--morph-x: -12vw;--morph-y: calc(-1 * var(--subpage-morph-y-abs));--morph-r: var(--bar-r);--content-gap: clamp(32px, 2.34vw, 50px);--content-right: 37vw;--ext-bottom: clamp(54px, 3.92vw, 82px)}#main[data-ui-state=team]{--morph-w: var(--bar-w);--morph-h: var(--bar-h);--morph-x: -27vw;--morph-y: calc(-1 * var(--subpage-morph-y-abs));--morph-r: var(--bar-r);--content-gap: clamp(32px, 2.34vw, 50px);--content-right: 20vw;--ext-bottom: clamp(54px, 3.92vw, 82px)}#main[data-ui-state=projects]{--morph-w: var(--proj-bar-abs-w);--morph-h: var(--bar-w);--morph-x: 0px;--morph-y: calc(-1 * var(--proj-bar-y-abs));--morph-r: var(--bar-r)}#main[data-ui-state=detail]{--morph-w: var(--detail-bar-w, 80vw);--morph-h: var(--bar-w);--morph-x: var(--detail-bar-x, 0px);--morph-y: calc(-1 * var(--proj-bar-y-abs));--morph-r: var(--bar-r);--content-gap: 0px;--content-right: 0px}#main[data-ui-state=notFound]{--morph-w: 0px;--morph-h: 0px;--morph-x: 0px;--morph-y: 0px;--morph-r: 0px;--content-gap: 0px;--content-right: 0px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:var(--wht);color:var(--blk);font-family:var(--font-sans);-webkit-font-smoothing:antialiased}button{background:none;border:none;cursor:pointer;padding:0}a{text-decoration:none;color:inherit;cursor:pointer}#main,#global-header,#sidebar{cursor:default;-webkit-user-select:none;user-select:none}::-webkit-scrollbar{width:2px;height:2px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb-brand);border-radius:1px}::-webkit-scrollbar-button{display:none}.lang-zh{font-weight:700}.lang-en{color:var(--grey)}body.lang-en .lang-zh{font-weight:400;color:var(--grey)}body.lang-en .lang-en{font-weight:700;color:var(--blk)}@keyframes img-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}.proj-thumb-inner:has(img):not(:has(img.loaded)):after,.detail-hero-slide:has(img):not(:has(img.loaded)):after,.detail-grid-thumb:has(img):not(:has(img.loaded)):after,.team-card-photo:has(img):not(:has(img.loaded)):after{content:"";position:absolute;top:50%;left:50%;width:36px;height:36px;border:2px solid var(--line-soft);border-top-color:var(--grey);border-radius:50%;transform:translate(-50%,-50%);animation:img-spin .75s linear infinite;pointer-events:none;z-index:2}#about-body,.honor-item,#detail-description,.team-hover-bio{font-weight:300}.load-status{display:flex;align-items:center;gap:clamp(8px,.7vw,14px);font-family:var(--font-sans);font-size:clamp(11px,.78vw,15px);color:var(--ink-mid);padding:clamp(10px,.9vw,18px) 0}.load-status.is-error{color:var(--accent-warning)}.load-status-spinner{width:14px;height:14px;border:1.5px solid var(--line-soft);border-top-color:var(--grey);border-radius:50%;display:inline-block;animation:img-spin .75s linear infinite}.load-status-retry{font-family:inherit;font-size:inherit;font-weight:400;color:var(--blk);border:1px solid var(--line-medium);background:transparent;padding:4px 12px;min-height:var(--hit-target);border-radius:2px;cursor:pointer;transition:background .15s ease,border-color .15s ease}.load-status-retry:hover{background:var(--surface-tint);border-color:var(--blk)}.page-section[data-page=notFound]{align-items:center;justify-content:center}.not-found-panel{display:flex;flex-direction:column;align-items:center;gap:clamp(10px,1.2vw,18px);text-align:center;padding:clamp(24px,4vw,60px)}.not-found-title{font-family:var(--font-serif-tw);font-size:clamp(48px,6vw,96px);font-weight:900;color:var(--blk);letter-spacing:.04em}.not-found-message{font-family:var(--font-sans);font-size:clamp(13px,1vw,17px);color:var(--ink-mid);letter-spacing:.04em}.not-found-home{font-family:var(--font-sans);font-size:clamp(13px,.9vw,16px);color:var(--blk);background:transparent;border:1px solid var(--line-medium);border-radius:2px;padding:10px 24px;min-height:var(--hit-target);cursor:pointer;transition:background .15s ease,border-color .15s ease,transform .18s ease;letter-spacing:.04em}.not-found-home:hover{background:var(--surface-tint);border-color:var(--blk);transform:scale(1.04)}.not-found-home:active{transform:scale(.96)}#global-header{position:fixed;top:0;left:0;right:0;height:var(--topbar);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(22px,1.64vw,34px);z-index:200;pointer-events:none}#global-header>*{pointer-events:auto}.header-left{display:flex;align-items:center;gap:clamp(12px,.94vw,20px)}.header-right{display:flex;align-items:center;gap:clamp(10px,.82vw,18px)}#home-btn{display:none;padding:4px;line-height:0;color:var(--blk);position:relative;top:-2px;transition:transform .2s ease}#home-btn:hover{transform:scale(1.15)}#home-btn:active{transform:scale(.9)}#hamburger-btn{display:flex;flex-direction:column;gap:5px;padding:4px;transition:transform .2s ease}#hamburger-btn span{display:block;width:20px;height:2.5px;background:var(--blk);border-radius:9999px}#hamburger-btn:hover{transform:scale(1.15)}#hamburger-btn:active{transform:scale(.9)}#lang-toggle{font-family:var(--font-sans);font-size:clamp(10px,.7vw,15px);letter-spacing:.06em;color:var(--blk);display:inline-flex;align-items:center;gap:4px}#logo-lottery{display:flex;gap:clamp(5px,.41vw,9px);align-items:center}#logo-lottery .tr-logo{width:clamp(14px,1.05vw,22px);height:clamp(14px,1.05vw,22px);object-fit:contain;opacity:.38;filter:invert(1) sepia(1) saturate(3) hue-rotate(155deg) brightness(.68)}#logo-lottery .tr-logo.is-hero{opacity:1}#sidebar{position:fixed;top:0;left:0;width:150px;height:100vh;background:var(--surface-tint);border-right:1px solid var(--line-medium);z-index:400;transform:translate(-150px);transition:transform .55s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;padding:52px 20px;gap:4px}#sidebar.open{transform:translate(0)}#sidebar-close{display:none}#sidebar nav{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:auto}#sidebar nav a{font-family:var(--font-sans);font-size:clamp(11px,.76vw,16px);font-weight:300;letter-spacing:.07em;color:var(--grey);display:inline-block;transition:color .15s,transform .2s ease}#sidebar nav a:hover{color:var(--blk);font-weight:700;transform:scale(1.1)}#sidebar-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--overlay-faint);z-index:300;opacity:0;pointer-events:none;transition:opacity .55s cubic-bezier(.4,0,.2,1)}#sidebar-overlay.visible{opacity:1;pointer-events:auto}#main{position:fixed;top:0;right:0;bottom:0;left:0;top:var(--topbar);display:flex;align-items:center;justify-content:center}.black-morph{position:absolute;width:var(--morph-w);height:var(--morph-h);background:linear-gradient(155deg,#94d4a8b8,#34acc2b8);backdrop-filter:blur(18px) saturate(1.6);-webkit-backdrop-filter:blur(18px) saturate(1.6);box-shadow:0 4px 32px color-mix(in srgb,var(--accent-cyan) 28%,transparent);border-radius:var(--morph-r);transform:translate(var(--morph-x),var(--morph-y));z-index:10;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:8px;overflow:hidden;transition-property:transform,width,height,border-radius;transition-duration:.48s,.22s,.48s,.22s;transition-timing-function:cubic-bezier(.2,.8,.2,1),cubic-bezier(.3,1,.3,1),cubic-bezier(.15,.85,.25,1),ease;transition-delay:0ms,.48s,.48s,.48s;will-change:transform,width,height}#main[data-ui-state=detail] .black-morph{flex-direction:row;align-items:center;justify-content:flex-start;padding:0 4px 0 6px}.bar-title{writing-mode:vertical-rl;text-orientation:mixed;font-family:var(--font-serif-tw);font-size:clamp(64px,4.69vw,96px);font-weight:900;line-height:1;color:var(--wht);letter-spacing:.32em;-webkit-user-select:none;user-select:none;margin-top:clamp(-28px,-1.29vw,-18px);margin-left:clamp(3px,.23vw,5px);opacity:0;transform:translateY(-10px);transition:opacity .2s ease 0s,transform .2s ease 0s}#main:not([data-ui-state=home]) .bar-title{opacity:1;transform:translateY(0);transition:opacity .45s cubic-bezier(.15,.85,.25,1) .9s,transform .45s cubic-bezier(.15,.85,.25,1) .9s}body.lang-en .bar-title{letter-spacing:.05em;text-transform:uppercase}#main[data-ui-state=detail] .bar-title{writing-mode:horizontal-tb;font-family:var(--font-serif);font-size:clamp(14px,1.05vw,22px);font-weight:700;letter-spacing:.08em;margin-top:-1px;margin-left:clamp(6px,.47vw,10px);flex:1;align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.lang-en #main[data-ui-state=detail] .bar-title{text-transform:none;letter-spacing:.05em;font-size:clamp(10px,.76vw,16px)}.detail-header-nav{display:flex;flex-direction:column;gap:1px;align-items:center;flex-shrink:0;position:absolute;top:50%;transform:translateY(-50%);z-index:25;opacity:0;pointer-events:none;transition:opacity .15s ease}#main[data-ui-state=detail] .detail-header-nav{opacity:1;pointer-events:auto;transition:opacity .45s cubic-bezier(.15,.85,.25,1) .95s}@media(min-width:768px){.detail-header-nav{right:var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) )}}@media(max-width:767px){.detail-header-nav{right:clamp(22px,1.64vw,34px);left:auto;top:50%;bottom:auto;transform:translateY(-50%)}}.detail-prev-btn,.detail-next-btn{color:var(--grey);line-height:0;padding:0 4px;transition:color .15s ease,transform .18s ease}.detail-prev-btn svg,.detail-next-btn svg{height:clamp(14px,1.4vw,20px);width:auto;display:block}.detail-prev-btn:hover,.detail-next-btn:hover{color:var(--blk);transform:scale(1.06)}.detail-prev-btn:active,.detail-next-btn:active{transform:scale(.93)}.detail-prev-btn polyline,.detail-next-btn polyline{stroke-width:1.8;vector-effect:non-scaling-stroke}.logo-img{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:66%;height:66%;object-fit:contain;object-position:center center;opacity:0;pointer-events:none;transition:opacity .07s ease 0s,transform .06s linear,filter .06s linear;will-change:opacity,transform,filter}#main[data-ui-state=home] .logo-img{opacity:1;pointer-events:auto;transition:opacity .45s ease .82s,transform .06s linear,filter .06s linear}#main[data-ui-state=home] .black-morph:hover .logo-img{transform:scale(.92);filter:drop-shadow(0 0 1.2px rgba(255,255,255,.65)) blur(.4px) drop-shadow(0 0 7px rgba(232,231,197,.14))}#main[data-ui-state=projects] .black-morph{flex-direction:row;align-items:center;justify-content:flex-start;padding:0 0 0 clamp(6px,.7vw,12px);clip-path:inset(0 -300px -300px -300px)}#main[data-ui-state=projects] .bar-title{writing-mode:horizontal-tb;margin-top:clamp(-18px,-2vw,-10px);margin-left:-21px}.contact-row{display:inline-flex;align-items:center;gap:5px}.copy-btn{width:11px;height:13px;color:var(--grey);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;transition:color .15s,transform .2s ease}.copy-btn:hover{color:var(--blk);transform:scale(1.067)}.copy-btn.copied{color:var(--grey)}.contact-email-link{font-family:inherit;font-size:inherit;font-weight:inherit;color:var(--grey);cursor:pointer;transition:color .15s;text-align:left}.contact-email-link:hover{color:var(--blk)}#main.is-init.is-init .home-nav{transform:translateY(calc(var(--home-morph-y) - var(--home-h)/2 - clamp(14px,1.05vw,22px) - 8px));opacity:0;transition:none}#main.is-init.is-init .home-brand{transform:translateY(calc(var(--home-morph-y) + var(--home-h)/2 + clamp(12px,.94vw,20px) + 8px));opacity:0;transition:none}#main.is-init.is-init .home-footer{transform:translateY(8px);opacity:0;transition:none}#main.is-init.is-init .logo-img{opacity:0;transition:none}.home-nav{position:absolute;transform:translateY(calc(var(--home-morph-y) - var(--home-h)/2 - clamp(14px,1.05vw,22px)));width:var(--home-w);display:flex;justify-content:space-between;font-family:var(--font-sans);font-size:clamp(12px,.88vw,18px);letter-spacing:.04em;opacity:1;transition:opacity .5s cubic-bezier(.15,.85,.25,1) 1.05s,transform .5s cubic-bezier(.15,.85,.25,1) 1.05s}.home-nav a{display:inline-block;font-weight:300;color:var(--grey);transition:transform .2s ease,color .15s ease}.home-nav a:hover{transform:scale(1.06);font-weight:700;color:var(--blk)}.home-nav a:active{transform:scale(.93)}#main:not([data-ui-state=home]) .home-nav{transform:translateY(calc(var(--home-morph-y) - var(--home-h)/2 - clamp(14px,1.05vw,22px) - 8px));opacity:0;pointer-events:none;transition:opacity .15s ease 0s,transform .15s ease 0s}.home-brand{position:absolute;transform:translateY(calc(var(--home-morph-y) + var(--home-h)/2 + clamp(12px,.94vw,20px)));width:var(--home-w);text-align:center;white-space:nowrap;font-family:var(--font-serif-tw);font-size:clamp(15px,1.11vw,23px);font-weight:900;color:var(--blk);letter-spacing:.08em;opacity:1;transition:opacity .5s cubic-bezier(.15,.85,.25,1) 1.05s,transform .5s cubic-bezier(.15,.85,.25,1) 1.05s,scale .2s ease}.home-brand:not(.no-hover):hover{scale:1.02}.home-brand:active{scale:.98}#main:not([data-ui-state=home]) .home-brand{transform:translateY(calc(var(--home-morph-y) + var(--home-h)/2 + clamp(12px,.94vw,20px) + 8px));opacity:0;pointer-events:none;transition:opacity .15s ease 0s,transform .15s ease 0s}.home-footer{position:absolute;bottom:clamp(18px,1.41vw,30px);left:0;right:0;text-align:center;display:flex;flex-direction:column;gap:1px;cursor:default;opacity:1;transform:translateY(0);transition:opacity .5s cubic-bezier(.15,.85,.25,1) .5s,transform .5s cubic-bezier(.15,.85,.25,1) .5s}#main:not([data-ui-state=home]) .home-footer{opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .15s ease 0s,transform .15s ease 0s}.home-quote-en{font-size:clamp(9px,.64vw,14px);font-weight:300;color:var(--grey);letter-spacing:.04em}.home-quote-zh{font-size:clamp(9px,.64vw,14px);font-weight:300;color:var(--grey)}.home-contact{font-size:clamp(8px,.59vw,12px);font-weight:300;color:var(--grey);margin-top:clamp(10px,.82vw,18px);letter-spacing:.04em}.back-btn{position:absolute;z-index:15;left:calc(50% + var(--morph-x) - var(--morph-w)/2 - 4px);top:calc(50% + var(--morph-y) - var(--morph-h)/2 + 8px);transform:translate(-100%);color:var(--grey);padding:0 4px;line-height:0;opacity:0;pointer-events:none;transition:opacity .15s ease,transform .18s ease,color .15s ease}#main:not([data-ui-state=home]) .back-btn{transform:translate(-100%);opacity:1;pointer-events:auto;transition:opacity .45s cubic-bezier(.15,.85,.25,1) .95s,transform .18s ease,color .15s ease}#main:not([data-ui-state=home]) .back-btn:hover{transform:translate(-100%) scale(1.06);color:var(--blk)}#main:not([data-ui-state=home]) .back-btn:active{transform:translate(-100%) scale(.93)}#main[data-ui-state=detail] .back-btn{left:calc(var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) ) - 34px);top:calc(var(--detail-header-h) / 2);transform:translateY(-50%);z-index:25}#main[data-ui-state=detail] .back-btn svg{height:clamp(24px,2.4vw,34px);width:auto}#main[data-ui-state=detail] .back-btn svg polyline{stroke-width:1.8;vector-effect:non-scaling-stroke}#main[data-ui-state=detail] .back-btn:hover{transform:translateY(-50%) scale(1.06);color:var(--blk)}#main[data-ui-state=detail] .back-btn:active{transform:translateY(-50%) scale(.93)}#main[data-ui-state=home] .back-btn,#main[data-ui-state=home] .secondary-links,#main[data-ui-state=notFound] .back-btn,#main[data-ui-state=notFound] .secondary-links,#main[data-ui-state=notFound] .black-morph{opacity:0;pointer-events:none;transition:none}.secondary-links{position:absolute;left:calc(50% + var(--morph-x));top:calc(50% + var(--morph-y) + var(--morph-h)/2 + 16px);transform:translate(-50%) translateY(10px);display:flex;flex-direction:column;align-items:center;gap:6px;opacity:0;pointer-events:none;transition:opacity .2s ease 0s,transform .2s ease 0s}#main:not([data-ui-state=home]) .secondary-links{transform:translate(-50%) translateY(0);opacity:1;pointer-events:auto;transition:opacity .4s cubic-bezier(.15,.85,.25,1) .95s,transform .4s cubic-bezier(.15,.85,.25,1) .95s}.secondary-links a{font-family:var(--font-sans);font-size:clamp(12px,.88vw,18px);font-weight:300;color:var(--grey);letter-spacing:.04em;white-space:nowrap;display:inline-block;transition:transform .2s ease,color .15s ease}.secondary-links a:hover{transform:scale(1.06);font-weight:700;color:var(--blk)}.secondary-links a:active{transform:scale(.93)}#main[data-ui-state=detail] .secondary-links{display:none}.page-section{position:absolute;left:calc(50% + var(--morph-x) + var(--morph-w)/2 + var(--content-gap));top:calc(50% + var(--morph-y) - var(--morph-h)/2);right:var(--content-right);bottom:calc(50% - var(--morph-y) - var(--morph-h)/2 - var(--ext-bottom));display:flex;flex-direction:column;overflow:hidden;opacity:0;transform:translateY(16px);pointer-events:none;transition:none}.page-section.is-active{opacity:1;transform:translateY(0);pointer-events:auto;transition:opacity .55s cubic-bezier(.15,.85,.25,1) .85s,transform .55s cubic-bezier(.15,.85,.25,1) .85s}#main[data-ui-state=home] .page-section{opacity:0;pointer-events:none;transition:none}#main[data-ui-state=projects] .back-btn{top:calc(50% + var(--morph-y));transform:translate(-100%) translateY(-50%)}#main[data-ui-state=projects] .back-btn:hover{transform:translate(-100%) translateY(-50%) scale(1.06);color:var(--blk)}#main[data-ui-state=projects] .back-btn:active{transform:translate(-100%) translateY(-50%) scale(.93)}#main[data-ui-state=projects] .secondary-links{left:calc(50% + var(--morph-x) + var(--morph-w)/2 + var(--proj-link-gap));top:calc(50% + var(--morph-y));transform:translate(0) translateY(-50%);flex-direction:column;gap:0px}#main[data-ui-state=projects] .page-section[data-page=projects]{left:calc(50% - var(--morph-w) / 2);right:0;top:calc(50% + var(--morph-y) + var(--morph-h)/2 + clamp(4px,.4vw,8px));bottom:clamp(40px,3.5vw,64px);flex-direction:column;overflow:visible}.page-section[data-page=about]{gap:0;padding-right:4px}#about-title{font-family:var(--font-serif-tw);font-size:clamp(22px,1.64vw,34px);font-weight:700;letter-spacing:.03em;flex-shrink:0}#about-body{font-size:clamp(11px,.76vw,16px);line-height:1.75;color:var(--ink-mid);flex-shrink:0;margin-top:clamp(3px,.23vw,5px)}#about-honors-title{font-family:var(--font-serif-tw);font-size:clamp(14px,1.05vw,22px);font-weight:700;letter-spacing:.03em;flex-shrink:0;margin-top:clamp(24px,1.87vw,40px)}.honors-wrapper{flex:1;min-height:0;margin-top:4px}.honors-scroll{height:100%;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb-soft) transparent}.honors-scroll::-webkit-scrollbar{width:2px}.honors-scroll::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:1px}.honor-item{font-size:clamp(11px,.76vw,16px);line-height:1.5;color:var(--ink-mid);padding:clamp(4px,.3vw,7px) 0;display:flex;gap:clamp(8px,.59vw,12px)}.honor-item:before{content:"·";color:inherit;flex-shrink:0}.page-section[data-page=team]{overflow:hidden}.team-grid{display:flex;gap:clamp(8px,.7vw,16px);align-items:flex-start}.team-card{flex:1;display:flex;flex-direction:column}.team-card-photo{position:relative;width:100%;aspect-ratio:1/1;background:var(--placeholder-img);overflow:hidden;border-radius:2px;opacity:1;transition:opacity .25s ease}.team-card-photo img{width:100%;height:100%;object-fit:cover;transform-origin:top center}.team-card-name-zh{font-family:var(--font-serif);font-size:clamp(13px,1vw,21px);font-weight:700;line-height:1.1;letter-spacing:.04em;margin-top:clamp(8px,.59vw,12px);padding-left:clamp(6px,.47vw,10px);opacity:1;transition:opacity .25s ease}.team-card-name-en{font-family:var(--font-serif);font-size:clamp(13px,1vw,21px);font-weight:700;line-height:1.1;letter-spacing:.01em;margin-top:2px;padding-left:clamp(6px,.47vw,10px);opacity:1;transition:opacity .25s ease}.team-card-creds{display:flex;flex-direction:column;gap:3px;margin-top:clamp(12px,.94vw,20px);padding-left:clamp(6px,.47vw,10px);opacity:1;transition:opacity .25s ease}.team-card-bio{display:none}.team-card-creds span{font-size:clamp(10px,.7vw,15px);font-weight:300;color:var(--grey);letter-spacing:.04em}.team-grid.team-photos-hidden .team-card-photo,.team-card.team-card-collapsing .team-card-photo,.team-grid.team-hovered .team-card-name-zh,.team-grid.team-hovered .team-card-name-en,.team-grid.team-hovered .team-card-creds{opacity:0}.team-expand-photo{position:absolute;overflow:hidden;border-radius:2px;background:var(--placeholder-img);z-index:5;pointer-events:none}.team-expand-photo img{width:100%;height:100%;object-fit:cover}.team-expand-info{position:absolute;left:calc(40% + clamp(18px,1.41vw,30px));right:0;top:0;bottom:0;display:flex;flex-direction:column;padding-top:clamp(16px,1.17vw,24px);z-index:5;pointer-events:none}.team-expand-info.visible{pointer-events:auto}.team-hover-name-zh,.team-hover-name-en,.team-hover-creds,.team-hover-bio{opacity:0;transform:translateY(8px);transition:opacity .12s ease,transform .12s ease}.team-hover-name-zh{font-family:var(--font-serif);font-size:clamp(18px,1.29vw,27px);font-weight:700;line-height:1.1;letter-spacing:.05em}.team-hover-name-en{font-family:var(--font-serif);font-size:clamp(18px,1.29vw,27px);font-weight:700;line-height:1.1;margin-top:3px}.team-hover-creds{display:flex;flex-direction:column;gap:4px;margin-top:clamp(12px,.94vw,20px)}.team-hover-creds span{font-size:clamp(11px,.76vw,16px);font-weight:300;color:var(--grey);letter-spacing:.04em}.team-hover-bio{font-size:clamp(11px,.76vw,16px);line-height:1.75;color:var(--ink-soft);margin-top:auto}.team-expand-info.visible .team-hover-name-zh{opacity:1;transform:translateY(0);transition:opacity .38s cubic-bezier(.15,.85,.25,1) .08s,transform .38s cubic-bezier(.15,.85,.25,1) .08s}.team-expand-info.visible .team-hover-name-en{opacity:1;transform:translateY(0);transition:opacity .38s cubic-bezier(.15,.85,.25,1) .16s,transform .38s cubic-bezier(.15,.85,.25,1) .16s}.team-expand-info.visible .team-hover-creds{opacity:1;transform:translateY(0);transition:opacity .38s cubic-bezier(.15,.85,.25,1) .24s,transform .38s cubic-bezier(.15,.85,.25,1) .24s}.team-expand-info.visible .team-hover-bio{opacity:1;transform:translateY(0);transition:opacity .38s cubic-bezier(.15,.85,.25,1) .36s,transform .38s cubic-bezier(.15,.85,.25,1) .36s}.projects-filter{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:clamp(12px,1vw,20px);padding-bottom:clamp(10px,.8vw,16px);flex-shrink:0;max-width:var(--proj-bar-abs-w)}.filter-btn{font-family:var(--font-sans);font-size:clamp(10px,.7vw,14px);font-weight:300;letter-spacing:.1em;color:var(--grey);padding:2px 0;cursor:pointer;display:inline-block;line-height:1;transition:transform .2s ease,color .15s ease}.filter-btn:hover{transform:scale(1.06);font-weight:700;color:var(--blk)}.filter-btn:active{transform:scale(.93)}.filter-btn.is-active{color:var(--blk);font-weight:700}.projects-grid-area{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb-soft) transparent;padding-right:0}.projects-grid-area::-webkit-scrollbar{width:2px}.projects-grid-area::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:1px}.projects-mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;align-content:start;max-width:var(--proj-bar-abs-w)}.proj-thumb{cursor:pointer;overflow:visible;position:relative;z-index:1;transition:transform .3s cubic-bezier(.2,.8,.2,1),z-index 0s;will-change:transform}.proj-thumb:hover{transform:scale(1.04);z-index:3}.proj-thumb:active{transform:scale(1.01)}.proj-thumb-inner{width:100%;aspect-ratio:3/2;background:var(--surface-warm);overflow:hidden;border-radius:2px;position:relative;transition:filter .35s ease}.proj-thumb-inner img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .25s ease}.proj-thumb-inner img.loaded{opacity:1}.proj-thumb-info{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent 0%,var(--overlay-deep) 100%);padding:clamp(24px,2.2vw,40px) clamp(10px,1vw,16px) clamp(8px,.7vw,13px);transform:translateY(100%);transition:transform .25s ease;border-radius:0 0 2px 2px;pointer-events:none}.proj-thumb:hover .proj-thumb-info{transform:translateY(0)}.proj-thumb-name{font-family:var(--font-sans);font-size:clamp(10px,.82vw,16px);font-weight:700;color:var(--wht);letter-spacing:.05em;line-height:1.3;margin-bottom:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-thumb-tags{font-size:clamp(10px,.72vw,14px);font-weight:300;color:#ffffffb8;letter-spacing:.07em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.proj-thumb.is-dim .proj-thumb-inner:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:2px;background:color-mix(in srgb,var(--surface-tint) 58%,transparent);pointer-events:none;transition:background .35s ease}.projects-mosaic:has(.proj-thumb:hover) .proj-thumb:not(:hover) .proj-thumb-inner{filter:grayscale(80%) brightness(.78)}#main[data-ui-state=detail] .black-morph{opacity:0;pointer-events:none;transition:opacity .45s ease;backdrop-filter:none;-webkit-backdrop-filter:none}#main:not([data-ui-state=detail]) .page-section[data-page=detail]{display:none}.page-section[data-page=detail]{left:0;right:0;top:0;bottom:0;flex-direction:column;gap:0;overflow-y:auto;overflow-x:clip;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}.detail-header{height:var(--detail-header-h);flex-shrink:0;display:flex;align-items:center;gap:clamp(10px,.8vw,16px);margin:0;padding-left:var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) );padding-right:calc(var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) ) + 52px);background:var(--wht);position:sticky;top:0;z-index:20;transition:padding .3s cubic-bezier(.15,.85,.25,1)}.detail-header-title{min-width:0;max-width:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:clamp(0px,.1vw,2px);overflow:hidden}.detail-name{font-family:var(--font-serif);font-size:clamp(13px,1vw,20px);font-weight:700;color:var(--blk);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;max-width:100%;order:2}.detail-tags{display:flex;flex-wrap:nowrap;align-items:center;gap:clamp(8px,.7vw,14px);min-width:0;overflow:hidden;flex-shrink:1;order:1}.detail-tag-sep{display:block;width:1px;height:clamp(14px,1.6em,22px);background:var(--grey);flex-shrink:0;align-self:center}.detail-tag{font-family:var(--font-sans);font-size:clamp(10px,.72vw,13px);font-weight:300;color:var(--blk);letter-spacing:.05em;white-space:nowrap;flex-shrink:0}.detail-body{flex-shrink:0;display:grid;grid-template-columns:45% 1fr;grid-template-rows:clamp(300px,calc(100vh - var(--topbar) - var(--detail-header-h) - 60px),900px) auto auto;margin:0 var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) ) 0;transition:margin .3s cubic-bezier(.15,.85,.25,1)}.detail-col-hero{grid-column:1 / -1;grid-row:1;overflow:visible;min-height:0;position:relative}.detail-col-info{grid-column:1;grid-row:2;padding:clamp(10px,.9vw,18px) clamp(12px,1vw,18px) clamp(20px,1.8vw,32px) 0;display:flex;flex-direction:column;gap:clamp(10px,.9vw,16px)}.detail-col-thumbs{grid-column:1 / -1;grid-row:3;margin-left:calc(-1 * var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) ));margin-right:calc(-1 * var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) ));padding:clamp(14px,1.4vw,24px) var(--detail-inset, calc(clamp(80px, 14.6vw, 280px) + 30px) ) clamp(24px,2.4vw,44px);background:#00000007}.detail-hero{position:relative;width:100%;height:100%;overflow:hidden;touch-action:pan-y}.detail-hero-track{width:100%;height:100%;position:relative}.detail-hero-slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;transition:opacity .28s ease;pointer-events:none;will-change:opacity}.detail-hero-slide.is-active{opacity:1;pointer-events:auto}.detail-hero-img{width:100%;height:100%;object-fit:contain;object-position:left center;display:block}.detail-hero-hint{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:flex-end;justify-content:center;padding:22px 12px 10px;background:linear-gradient(transparent,var(--overlay-mid));color:#fffc;font-family:var(--font-sans);font-size:11px;font-weight:300;letter-spacing:.12em;pointer-events:none;transition:opacity .6s ease;z-index:5}.detail-hero-hint.is-hidden{opacity:0}.detail-hero-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;background:none;border:none;padding:18px 20px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink-pale);opacity:0;transition:opacity .2s ease,color .15s ease}.detail-hero-prev{left:-54px}.detail-hero-next{right:-54px}.detail-col-hero.arrows-show .detail-hero-arrow{opacity:1}.detail-hero-arrow:hover{color:var(--blk)}.detail-hero-arrow:active{transform:translateY(-50%) scale(.88)}.detail-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(clamp(80px,8vw,120px),1fr));gap:clamp(8px,.8vw,14px)}.detail-grid-thumb{aspect-ratio:1;overflow:hidden;border-radius:2px;cursor:pointer;background:var(--surface-tint-2);transition:opacity .2s ease;position:relative}.detail-grid-img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .25s ease}.detail-grid-img.loaded{opacity:1}.detail-photo-grid:has(.detail-grid-thumb:hover) .detail-grid-thumb:not(:hover){opacity:.5}.detail-meta{display:flex;flex-wrap:nowrap;align-self:flex-start;align-items:flex-start;width:max-content;max-width:none;column-gap:clamp(34px,2.85vw,57px);row-gap:clamp(1px,.14vw,3px);flex-shrink:0}.detail-meta-col{display:flex;flex-direction:column;row-gap:clamp(1px,.14vw,3px)}.detail-meta-row{font-family:var(--font-sans);font-size:clamp(10px,.72vw,14px);font-weight:300;color:var(--ink-mid);letter-spacing:.03em;line-height:1.5;display:flex;justify-content:space-between;gap:clamp(8px,.6vw,14px)}.detail-meta-label{color:var(--grey);flex-shrink:0}.detail-meta-value{text-align:right;white-space:pre-wrap;word-break:break-word}.detail-description{font-family:var(--font-sans);font-size:clamp(11px,.76vw,15px);line-height:1.9;color:var(--ink-mid);white-space:pre-line;flex-shrink:0;padding-top:clamp(10px,.8vw,16px);border-top:1px solid var(--line-soft)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;background:var(--lightbox-bg);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.lightbox.open{opacity:1;pointer-events:all;touch-action:none}.lightbox-img{max-width:92vw;max-height:92vh;object-fit:contain;display:block;transform-origin:center center;transition:transform .05s ease;will-change:transform}.lightbox-nav-btn{position:absolute;top:50%;transform:translateY(-50%);width:var(--hit-target);height:var(--hit-target);padding:0;background:#ffffff14;border:none;color:#ffffffd9;cursor:pointer;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .15s ease,transform .18s ease,opacity .15s ease;z-index:2}.lightbox-nav-btn:hover{background:#ffffff2e;transform:translateY(-50%) scale(1.06)}.lightbox-nav-btn:active{transform:translateY(-50%) scale(.94)}.lightbox-prev{left:clamp(12px,2.5vw,28px)}.lightbox-next{right:clamp(12px,2.5vw,28px)}@media(pointer:coarse){.lightbox-nav-btn{opacity:.4}}#contact-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:600;display:flex;align-items:center;justify-content:center;pointer-events:none}#contact-modal.is-open{pointer-events:auto}#contact-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--overlay-light);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .3s ease}#contact-modal.is-open #contact-overlay{opacity:1}.contact-dialog{position:relative;z-index:1;width:min(420px,90vw);background:var(--wht);box-shadow:0 8px 40px color-mix(in srgb,var(--accent-cyan) 18%,transparent),0 1px 0 var(--line-soft);border:1px solid var(--line-soft);border-radius:4px;padding:clamp(24px,4vw,36px) clamp(24px,4vw,36px) clamp(20px,3vw,28px);opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s cubic-bezier(.15,.85,.25,1)}#contact-modal.is-open .contact-dialog{opacity:1;transform:translateY(0)}#contact-close{position:absolute;top:14px;right:16px;font-size:20px;line-height:1;color:var(--grey);opacity:.7;padding:4px 6px;cursor:pointer;transition:opacity .15s}#contact-close:hover{opacity:1}#contact-modal-title{font-family:var(--font-sans);font-size:clamp(15px,1.2vw,20px);font-weight:700;color:var(--blk);letter-spacing:.06em;margin-bottom:clamp(16px,2vw,24px)}.contact-form{display:flex;flex-direction:column;gap:clamp(18px,2.5vw,28px)}.contact-section{display:flex;flex-direction:column;gap:clamp(6px,.8vw,10px)}.contact-field{display:flex;flex-direction:column;gap:0}.contact-field input{background:transparent;border:none;border-bottom:1px solid var(--line-bold);color:var(--blk);font-family:var(--font-sans);font-size:clamp(12px,.88vw,15px);font-weight:300;padding:6px 2px;outline:none;transition:border-color .15s;width:100%}.contact-field input::placeholder{color:var(--grey)}.contact-field input:focus{border-bottom-color:var(--blk)}.contact-group-label{font-family:var(--font-sans);font-size:clamp(10px,.72vw,12px);font-weight:300;color:var(--grey);letter-spacing:.06em}.contact-field-message{display:flex;flex-direction:column;gap:0}.contact-field-message textarea{background:transparent;border:1px solid var(--line-bold);border-radius:2px;color:var(--blk);font-family:var(--font-sans);font-size:clamp(12px,.88vw,15px);font-weight:300;padding:8px 10px;outline:none;transition:border-color .15s;width:100%;resize:none;aspect-ratio:4 / 3;line-height:1.6;overflow-y:auto;scrollbar-width:thin;scrollbar-color:var(--scroll-thumb-brand) transparent}.contact-field-message textarea::-webkit-scrollbar{width:4px}.contact-field-message textarea::-webkit-scrollbar-track{background:transparent}.contact-field-message textarea::-webkit-scrollbar-thumb{background:var(--scroll-thumb-brand);border-radius:2px}.contact-field-message textarea::placeholder{color:var(--grey)}.contact-field-message textarea:focus{border-color:var(--blk)}.contact-char-count{align-self:flex-end;font-family:var(--font-sans);font-size:clamp(9px,.65vw,11px);font-weight:300;color:var(--grey);letter-spacing:.04em;margin-top:4px;transition:color .15s}.contact-char-count.is-over{color:var(--accent-warning)}#contact-send-btn{align-self:flex-end;margin-top:clamp(4px,.5vw,8px);padding:7px 24px;background:var(--accent-grad);border:none;border-radius:2px;color:var(--wht);font-family:var(--font-sans);font-size:clamp(14px,1vw,17px);font-weight:400;letter-spacing:.06em;cursor:pointer;transition:opacity .15s,transform .15s}#contact-send-btn:hover{opacity:.88}#contact-send-btn:active{transform:scale(.96)}#contact-send-btn:disabled{background:var(--line-medium);cursor:not-allowed}#contact-send-btn:disabled:hover{opacity:1}.sidebar-contact-btn{font-family:var(--font-sans);font-size:clamp(14px,1vw,17px);font-weight:400;letter-spacing:.06em;color:var(--wht);padding:6px 12px;background:var(--accent-grad);border:none;border-radius:2px;cursor:pointer;transition:opacity .15s,transform .15s}.sidebar-contact-btn:hover{opacity:.88}.sidebar-contact-btn:active{transform:scale(.96)}@media(max-width:1023px){.contact-dialog{width:min(400px,88vw)}}@media(max-width:767px){#contact-modal{align-items:flex-end}.contact-dialog{width:100vw;border-radius:10px 10px 0 0;padding:24px 20px 28px;transform:translateY(24px)}#contact-modal.is-open .contact-dialog{transform:translateY(0)}.contact-form{gap:14px}.contact-field-message textarea{aspect-ratio:auto;min-height:88px;max-height:110px}}@media(max-width:479px){.contact-dialog{padding:20px 16px 24px}.contact-form{gap:12px}.contact-field-message textarea{max-height:90px}}@media(max-height:500px)and (max-width:900px){#contact-modal{align-items:center}.contact-dialog{width:min(480px,92vw);border-radius:4px;padding:16px 20px 18px}.contact-form{gap:10px}#contact-modal-title{margin-bottom:10px}.contact-field-message textarea{aspect-ratio:auto;min-height:56px;max-height:72px}}@media(pointer:coarse){.projects-mosaic:has(.proj-thumb:hover) .proj-thumb:not(:hover) .proj-thumb-inner{filter:none}.detail-photo-grid:has(.detail-grid-thumb:hover) .detail-grid-thumb:not(:hover){filter:none;opacity:1}.detail-hero-arrow{display:none}.proj-thumb-info{transform:translateY(0)}.proj-thumb,.proj-thumb:hover,.proj-thumb:active{transform:none;transition:none}#home-btn,#hamburger-btn,#lang-toggle,.back-btn,.copy-btn,#contact-close,.detail-prev-btn,.detail-next-btn{min-width:var(--hit-target);min-height:var(--hit-target);display:inline-flex;align-items:center;justify-content:center}.filter-btn{padding:12px 6px}#sidebar nav a{padding:12px 8px}.secondary-links a{padding:10px 6px}.home-nav a{padding:10px 4px}}@media(hover:none){.secondary-links a:hover,.home-nav a:hover,#sidebar nav a:hover,.home-brand:hover,#home-btn:hover,#hamburger-btn:hover,.back-btn:hover,.detail-prev-btn:hover,.detail-next-btn:hover,.copy-btn:hover,.contact-email-link:hover,#contact-close:hover,#contact-send-btn:hover,.sidebar-contact-btn:hover{transform:none;scale:1;font-weight:inherit;color:inherit;opacity:inherit}#main:not([data-ui-state=home]):not([data-ui-state=detail]) .back-btn:hover{transform:translate(-100%) translateY(-50%)}#main[data-ui-state=detail] .back-btn:hover{transform:translateY(-50%)}}@media(max-width:1023px){#logo-lottery{display:none}}@media(max-width:767px){:root{--mb-morph-h: 26px;--mb-morph-top: 14px;--mb-pad: 20px;--mb-content-top: calc(var(--mb-morph-top) * 2 + var(--mb-morph-h) + 12px)}#sidebar{height:100dvh;padding-bottom:max(44px,calc(env(safe-area-inset-bottom) + 20px))}.black-morph{transition:none}#logo-lottery{display:none}.secondary-links{display:flex;flex-direction:row;position:absolute;top:calc(var(--mb-morph-top) + var(--mb-morph-h) / 2);right:var(--mb-pad);transform:translateY(-50%);gap:8px;font-size:clamp(9px,2.5vw,12px);z-index:1}#main[data-ui-state=about] .secondary-links,#main[data-ui-state=team] .secondary-links,#main[data-ui-state=projects] .secondary-links{top:calc(var(--mb-morph-top) + var(--mb-morph-h));left:45px;right:auto;justify-content:flex-start;gap:10px;transform:none;z-index:15}#main[data-ui-state=projects]:not([data-ui-state=home]) .secondary-links{left:45px;right:auto;top:calc(var(--mb-morph-top) + var(--mb-morph-h));transform:none;flex-direction:row;align-items:center;gap:8px;z-index:20}#main[data-ui-state=about],#main[data-ui-state=team],#main[data-ui-state=projects],#main[data-ui-state=detail]{--mb-morph-h: 34px;--mb-morph-top: 11px}#main[data-ui-state=about] .black-morph{left:45px;right:45px;width:auto}#main[data-ui-state=about] .back-btn{top:calc(var(--mb-morph-top) + var(--mb-morph-h) / 2);left:36px;padding:0;transform:translate(-100%) translateY(-50%)}#main[data-ui-state=about] .back-btn:hover{transform:translate(-100%) translateY(-50%) scale(1.06)}#main[data-ui-state=about] .back-btn:active{transform:translate(-100%) translateY(-50%) scale(.93)}#main[data-ui-state=team] .back-btn,#main[data-ui-state=projects] .back-btn{top:calc(var(--mb-morph-top) + var(--mb-morph-h) / 2);left:36px;padding:0;transform:translate(-100%) translateY(-50%)}#main[data-ui-state=team] .back-btn:hover,#main[data-ui-state=projects] .back-btn:hover{transform:translate(-100%) translateY(-50%) scale(1.06)}#main[data-ui-state=team] .back-btn:active,#main[data-ui-state=projects] .back-btn:active{transform:translate(-100%) translateY(-50%) scale(.93)}#main[data-ui-state=about] .black-morph,#main[data-ui-state=team] .black-morph,#main[data-ui-state=projects] .black-morph,#main[data-ui-state=detail] .black-morph{position:absolute;top:var(--mb-morph-top);left:45px;right:45px;width:auto;height:var(--mb-morph-h);transform:none;flex-direction:row;align-items:center;justify-content:flex-start;padding:0 10px}#main[data-ui-state=about] .bar-title,#main[data-ui-state=team] .bar-title,#main[data-ui-state=projects] .bar-title,#main[data-ui-state=detail] .bar-title{writing-mode:horizontal-tb;font-family:var(--font-serif);font-size:clamp(14px,4.2vw,20px);font-weight:700;letter-spacing:.06em;margin:0;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body.lang-en #main[data-ui-state=about] .bar-title,body.lang-en #main[data-ui-state=team] .bar-title,body.lang-en #main[data-ui-state=projects] .bar-title{text-transform:uppercase;letter-spacing:.05em}.back-btn{top:calc(var(--mb-morph-top) + var(--mb-morph-h) / 2);left:36px;padding:0;transform:translate(-100%) translateY(-50%)}#main:not([data-ui-state=home]) .back-btn:hover{transform:translate(-100%) translateY(-50%) scale(1.06)}#main:not([data-ui-state=home]) .back-btn:active{transform:translate(-100%) translateY(-50%) scale(.93)}.page-section{left:0;right:0;top:var(--mb-content-top);bottom:0;padding:0 var(--mb-pad);overflow-y:auto}#main[data-ui-state=home]{--home-w: clamp(120px, 30vw, 155px);--home-h: clamp(160px, 47vw, 250px)}.home-nav a{font-size:clamp(11px,3vw,15px)}.home-nav{text-align:center}.home-brand{white-space:nowrap;letter-spacing:0;text-align-last:justify}#main[data-ui-state=home] .home-footer{bottom:max(12px,env(safe-area-inset-bottom))}.page-section[data-page=about]{flex-direction:column;overflow-y:auto;padding:0 47px;gap:0;top:calc(var(--mb-morph-top) + var(--mb-morph-h) + 50px)}#about-title{font-size:clamp(20px,5.5vw,28px)}#about-body{font-size:clamp(12px,3.2vw,15px);text-align:justify}#about-honors-title{font-size:clamp(14px,3.8vw,18px);margin-top:22px}.honors-wrapper{flex:none}.honors-scroll{height:auto;max-height:none;overflow-y:visible}.honor-item{font-size:clamp(11px,3vw,14px)}.page-section[data-page=team]{top:calc(var(--mb-morph-top) + var(--mb-morph-h) + 50px);overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;padding:0 47px clamp(80px,22vw,140px)}.team-grid{flex-direction:column;overflow:visible}.team-card{flex:none;width:100%;cursor:pointer}.team-card-photo{width:100%;aspect-ratio:4 / 3;border-radius:2px}.team-card-name-zh{font-size:clamp(16px,4.5vw,22px);margin-top:clamp(10px,2.5vw,16px)}.team-card-name-en{font-size:clamp(13px,3.5vw,18px)}.team-card-creds span{font-size:clamp(11px,3vw,14px)}.team-card-bio{display:none;font-size:clamp(11px,3vw,14px);line-height:1.7;color:var(--ink-mid);margin-top:clamp(18px,5vw,28px);font-weight:300;text-align:justify}.team-card.is-expanded .team-card-bio{display:block}.team-card-name-zh{display:flex;align-items:center;gap:8px}.team-card-chevron{flex-shrink:0;width:8px;height:auto;color:var(--grey);transition:transform .2s ease}.team-card.is-expanded .team-card-chevron{transform:rotate(90deg)}.team-expand-photo,.team-expand-info{display:none}.team-grid.team-hovered .team-card-name-zh,.team-grid.team-hovered .team-card-name-en,.team-grid.team-hovered .team-card-creds,.team-grid.team-photos-hidden .team-card-photo{opacity:1}#main[data-ui-state=projects] .page-section[data-page=projects]{flex-direction:column;left:0;right:0;top:calc(var(--mb-morph-top) + var(--mb-morph-h));padding:0 45px;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;gap:10px}#main[data-ui-state=projects] .projects-filter{position:sticky;top:0;flex-direction:row;flex-wrap:nowrap;justify-content:flex-end;align-items:center;padding:0 0 8px;gap:14px;width:100%;max-width:none;margin:0;background:var(--wht);z-index:4}.filter-btn{writing-mode:horizontal-tb;font-size:clamp(11px,3vw,14px);padding:3px 0;border:none;border-radius:0;letter-spacing:.04em}.projects-grid-area{flex:none;width:100%;height:auto;overflow:visible}.projects-mosaic{display:grid;grid-template-columns:1fr;grid-template-rows:auto;gap:8px;width:100%;max-width:none;height:auto}.projects-mosaic .proj-thumb:nth-child(n){grid-column:auto;grid-row:auto;aspect-ratio:3 / 2}.proj-thumb-name{font-size:clamp(13px,3.5vw,16px)}.proj-thumb-tags{font-size:clamp(11px,3vw,13px)}.projects-list-area{display:none}.page-section[data-page=detail]{left:0;right:0;top:0;padding:0}.detail-header{margin:0;padding-left:calc(clamp(22px,1.64vw,34px) + 11px);padding-right:calc(clamp(22px,1.64vw,34px) + 52px)}#main[data-ui-state=detail] .back-btn{left:clamp(22px,1.64vw,34px);top:calc(var(--detail-header-h) / 2);transform:translate(-100%) translateY(-50%);min-height:0;min-width:0}#main[data-ui-state=detail] .back-btn:hover{transform:translate(-100%) translateY(-50%) scale(1.06)}#main[data-ui-state=detail] .back-btn:active{transform:translate(-100%) translateY(-50%) scale(.93)}#main[data-ui-state=detail] .detail-prev-btn,#main[data-ui-state=detail] .detail-next-btn{min-height:0;padding:0 14px}.detail-body{display:flex;flex-direction:column;margin:0;-webkit-overflow-scrolling:touch}.detail-col-hero{order:1}.detail-hero{height:auto;aspect-ratio:3 / 2}.detail-hero-img{object-position:center center}.detail-col-info{order:2;padding:var(--mb-pad) var(--mb-pad) clamp(16px,4vw,28px) var(--mb-pad)}.detail-col-thumbs{order:3;margin-left:0;margin-right:0;padding:clamp(20px,5vw,32px) var(--mb-pad) clamp(60px,15vw,100px);border-top:1px solid var(--line-faint)}.detail-photo-grid{grid-template-columns:repeat(auto-fill,minmax(80px,1fr))}.team-grid{gap:clamp(36px,8vw,52px)}}@media(min-width:600px)and (max-width:767px){.team-grid{flex-direction:row;flex-wrap:wrap;gap:clamp(18px,3vw,28px)}.team-card{flex:1 1 calc(50% - 14px);min-width:0}.team-card-photo{aspect-ratio:1 / 1}.detail-photo-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:479px){:root{--mb-pad: 16px}.team-card-photo{aspect-ratio:3 / 2}.detail-photo-grid{grid-template-columns:repeat(2,1fr)}}@media(max-height:500px)and (max-width:900px){:root{--mb-morph-top: 8px;--mb-morph-h: 22px}.team-grid{flex-direction:row;flex-wrap:wrap}.team-card{flex:1 1 45%}.team-card-photo{aspect-ratio:1 / 1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.logo-img,#main[data-ui-state=home] .black-morph:hover .logo-img{transform:none;filter:none}}
