#intro,body::after,body::before{position:fixed;inset:0}#intro,.nav-with-filters{display:flex;align-items:center}.hero,.intro-text{text-align:center}.nav,main{margin:0 auto}*{margin:0;padding:0;box-sizing:border-box}:root{--bg-main:#0f172a;--bg-soft:#020617;--text-main:#f8fafc;--text-sub:#e2e8f0;--radius:14px}.author-avatar,.intro-avatar{border-radius:50%;object-fit:cover}body{font-family:'Noto Sans TC',sans-serif;background:var(--bg-main);color:var(--text-main);line-height:1.7;position:relative;overflow-x:hidden}body::before{content:"";background:url("DSC_0142.jpg") center center/cover no-repeat;filter:blur(3px) saturate(1.1) contrast(1.1);opacity:1;z-index:-2}body::after{content:"";background:rgba(2,6,23,.55);z-index:-1}#intro{background:#05070c;justify-content:center;z-index:9999;animation:1.2s 2s forwards introFadeOut}.intro-content{display:flex;flex-direction:column;align-items:center;gap:16px}.intro-avatar{width:200px;height:200px;opacity:0;animation:.9s forwards avatarIn}.intro-text{color:#e5e7eb;font-size:clamp(20px, 4.5vw, 36px);font-weight:700;letter-spacing:2px;opacity:0;animation:1s forwards introTextIn}@keyframes avatarIn{to{opacity:1;transform:scale(1)}}@keyframes introTextIn{to{opacity:1;transform:translateY(0)}}@keyframes introFadeOut{to{opacity:0;pointer-events:none}}header{position:sticky;top:0;background:rgba(11,11,12,.75);backdrop-filter:blur(10px);z-index:50;padding:16px 50px}.nav{max-width:1200px}.nav-with-filters{justify-content:space-between}.nav h1{font-size:15px;font-weight:700}.header-filters{display:none}@media (min-width:1024px){.header-filters{display:block;opacity:0;transform:translateY(-10px);pointer-events:none;transition:.35s}.header-filters.is-visible{opacity:1;transform:translateY(0);pointer-events:auto}.header-filters .filters{display:flex;gap:10px;padding:8px 12px;border-radius:999px;background:rgba(2,6,23,.45);backdrop-filter:blur(10px)}.header-filters .filter-btn{font-size:13px;padding:8px 16px}}.hero{padding:90px 20px 60px}.hero h2{color:#f8fafc;text-shadow:0 2px 10px rgba(0,0,0,.6);font-size:clamp(28px, 6vw, 44px);font-weight:900;margin-bottom:18px}.hero-author{display:flex;align-items:center;justify-content:center;gap:16px;margin:14px auto 18px;flex-wrap:wrap}.author-avatar{width:52px;height:52px;background:rgba(255,255,255,.08);transition:transform .4s;cursor:pointer}.author-avatar:hover{transform:scale(1.2)}.hero-meta{font-size:14px;color:#e5e7eb;text-align:left}@media (max-width:640px){.hero-author{flex-direction:column;gap:10px}.hero-meta{text-align:center}}.top-social{display:flex;justify-content:center;align-items:center;gap:14px;margin:20px auto;flex-wrap:wrap}.contact-label{font-size:13px;color:var(--text-sub)}.top-social a{padding:6px 16px;border:1px solid rgba(255,255,255,.35);border-radius:999px;text-decoration:none;font-weight:600;color:#f8fafc;background:rgba(255,255,255,.12);backdrop-filter:blur(6px);font-size:13px;transition:.25s}.top-social a:hover{background:rgba(255,255,255,.28);transform:translateY(-2px)}.site-notice{max-width:680px;margin:20px auto 10px;padding:14px 18px;font-size:13px;border:1px dashed rgba(255,255,255,.15);border-radius:12px;text-align:center;color:#e5e7eb;background:rgba(0,0,0,.5)}.site-notice strong{color:#fff;font-weight:600}.site-notice .warning{display:inline-block;margin-top:6px;color:#e5e7eb}.filter-section{position:sticky;top:72px;z-index:45;background:0 0;padding:12px 0;transition:.35s}.filter-section.is-hidden{opacity:0;transform:translateY(-20px);pointer-events:none}.filters{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.filter-btn{padding:10px 18px;border-radius:999px;font-size:14px;font-weight:600;color:#f8fafc;background:rgba(15,23,42,.8);border:1px solid rgba(255,255,255,.2);cursor:pointer;transition:.2s;backdrop-filter:blur(4px)}.gallery-placeholder,footer{text-align:center;color:var(--text-sub)}.filter-btn:hover{background:rgba(255,255,255,.1);transform:translateY(-2px)}.filter-btn.active{background:#fff;color:#000;border-color:#fff}main{max-width:1400px;padding:40px 16px 80px}.gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.photo{width:100%;aspect-ratio:16/9!important;background-color:#fff!important;border-radius:var(--radius);transform:translateY(28px) scale(.96);position:relative;border-radius:var(--radius);overflow:hidden;background:#1e293b;cursor:pointer;opacity:0;transform:translateY(20px);transition:opacity .6s,transform .6s}.photo img{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center;object-fit:contain;display:block;object-fit:cover;transition:transform .5s}.photo.is-visible{transform:translateY(0) scale(1);opacity:1;transform:translateY(0)}@media (hover:hover){.photo:hover img{transform:scale(1.05)}}.gallery-placeholder{grid-column:1/-1;margin:40px auto;padding:28px;max-width:420px;border:1px dashed rgba(255,255,255,.2);border-radius:16px;background:rgba(0,0,0,.15)}.lightbox-close,.lightbox-nav{border:none;position:absolute}.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;z-index:100}.download-modal.active,.lightbox.active{opacity:1;pointer-events:auto}#lightbox-img{transition:transform .4s cubic-bezier(.25, 1, .5, 1),opacity .3s;will-change:transform,opacity}.img-slide-left{transform:translateX(-100px) scale(.95)!important;opacity:0!important}.img-slide-right{transform:translateX(100px) scale(.95)!important;opacity:0!important}.lightbox img{max-width:95%;max-height:85%;transition:transform .25s}.lightbox-close{top:20px;right:24px;font-size:32px;color:#fff;background:0 0;cursor:pointer;z-index:110}.lightbox-nav{top:50%;transform:translateY(-50%);background:rgba(0,0,0,.3);color:#fff;font-size:2rem;padding:20px 15px;cursor:pointer;z-index:101;transition:background .3s;border-radius:8px;user-select:none}.lightbox-nav:hover{background:rgba(255,255,255,.2)}.lightbox-nav.prev{left:20px}.lightbox-nav.next{right:20px}.lightbox-controls{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);z-index:120;display:flex;gap:12px;padding:10px 14px;background:rgba(30,41,59,.8);backdrop-filter:blur(10px);border-radius:999px;border:1px solid rgba(255,255,255,.1)}.lightbox-controls button{display:flex;align-items:center;height:36px;padding:0 16px;border:1px solid rgba(255,255,255,.2);background:0 0;color:#fff;font-size:13px;font-weight:600;cursor:pointer;border-radius:999px;transition:.2s}.lightbox-controls button:hover{background:rgba(255,255,255,.15)}@media (max-width:600px){.gallery{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}.lightbox-controls{bottom:20px;padding:8px 10px}}.download-modal{position:fixed;inset:0;background:rgba(0,0,0,.8);backdrop-filter:blur(5px);display:flex;align-items:center;justify-content:center;z-index:200;opacity:0;pointer-events:none;transition:opacity .3s;padding:20px}.download-modal-content{background:#0f172a;border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:30px;max-width:400px;width:100%;text-align:center;box-shadow:0 20px 50px rgba(0,0,0,.5);transform:scale(.95);transition:transform .3s}.download-modal.active .download-modal-content{transform:scale(1)}.download-modal h3{font-size:20px;color:#fff;margin-bottom:12px}.download-modal-text{font-size:15px;color:#cbd5e1;margin-bottom:24px}.download-modal-text strong{color:#60a5fa}.download-modal-buttons{display:flex;gap:12px}.download-modal-btn{flex:1;padding:12px;border-radius:10px;font-size:15px;cursor:pointer;border:none;font-weight:700}.download-modal-btn.cancel{background:rgba(255,255,255,.1);color:#fff}.download-modal-btn.confirm{background:#3b82f6;color:#fff}footer{padding:40px 20px;font-size:13px;opacity:.7}.lightbox-info{position:absolute;bottom:95px;left:50%;transform:translateX(-50%);background:rgba(0,0,0,.6);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);padding:8px 20px;border-radius:40px;font-size:13px;color:rgba(255,255,255,.9);border:1px solid rgba(255,255,255,.15);z-index:110;pointer-events:none;letter-spacing:.5px;opacity:0;transition:opacity .3s;white-space:nowrap}.lightbox.active .lightbox-info{opacity:1}@media (max-width:768px){.lightbox-nav{padding:15px 10px;font-size:1.5rem;background:rgba(0,0,0,.2)}.lightbox-nav.prev{left:5px}.lightbox-nav.next{right:5px}.lightbox-info{font-size:11px;bottom:110px;padding:6px 14px}}