.elementor-kit-9{--e-global-color-primary:#0B0B0B;--e-global-color-secondary:#FBFAF7;--e-global-color-text:#0B0B0B;--e-global-color-accent:#DCD6CC;--e-global-typography-primary-font-family:"Kanit";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Kanit";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Kanit";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;background-color:var( --e-global-color-secondary );}.elementor-kit-9 button,.elementor-kit-9 input[type="button"],.elementor-kit-9 input[type="submit"],.elementor-kit-9 .elementor-button{background-color:var( --e-global-color-text );font-family:"Kanit", Sans-serif;color:var( --e-global-color-secondary );box-shadow:0px 0px 0px -7px rgba(0,0,0,0.5);border-radius:30px 30px 30px 30px;}.elementor-kit-9 button:hover,.elementor-kit-9 button:focus,.elementor-kit-9 input[type="button"]:hover,.elementor-kit-9 input[type="button"]:focus,.elementor-kit-9 input[type="submit"]:hover,.elementor-kit-9 input[type="submit"]:focus,.elementor-kit-9 .elementor-button:hover,.elementor-kit-9 .elementor-button:focus{background-color:var( --e-global-color-primary );color:var( --e-global-color-text );}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* =====================================================================
   PCM — PREMIUM CONSTRUCTION MANAGEMENT
   GLOBAL STYLES (v2.0 · HBA editorial layout)
   ชุดกลาง — แก้สไตล์ทั้งเว็บที่นี่ที่เดียว
   อ้างอิงรูปแบบจากไฟล์ pcm-home-hba-layout.html (ที่ทิพเลือก)
   ---------------------------------------------------------------------
   วางใน Elementor > Site Settings > Custom CSS หรือ Additional CSS
   ===================================================================== */

/* ---- 1. FONTS ------------------------------------------------------ */
@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:ital,opsz,wght@0,6..96,400..700;1,6..96,400..600&family=Cormorant+Garamond:ital@1&family=Noto+Sans+Thai:wght@300;400;500;600;700&family=Inter:wght@300;400;500;600;700;800;900&display=swap');

/* Helvetica Thai — ฟอนต์ไทยหลัก (ลิขสิทธิ์ ต้อง self-host)
   อัปไฟล์ที่มีสิทธิ์ใช้เข้า WordPress แล้วเปิด @font-face ด้านล่าง
   (ถ้ายังไม่ลง จะ fallback เป็น Noto Sans Thai Light อัตโนมัติ)
@font-face{
  font-family:"Helvetica Thai";
  src:url("/wp-content/uploads/fonts/HelveticaThai-Light.woff2") format("woff2");
  font-weight:300; font-display:swap;
}
@font-face{
  font-family:"Helvetica Thai";
  src:url("/wp-content/uploads/fonts/HelveticaThai-Regular.woff2") format("woff2");
  font-weight:400; font-display:swap;
}
@font-face{
  font-family:"Helvetica Thai";
  src:url("/wp-content/uploads/fonts/HelveticaThai-Bold.woff2") format("woff2");
  font-weight:700; font-display:swap;
}
*/

/* ---- 2. TOKENS (จากไฟล์อ้างอิง) ----------------------------------- */
:root{
  --ink:#12110F; --charcoal:#1F1E1B; --steel:#6E6E68; --stone:#B4AB9C;
  --linen:#D9D3C7; --plaster:#F2EEE5; --oak:#8A6F4B; --brass:#9A7B4F;
  --hairline:#CBC4B6; --hairline-dark:#3A3833;
  --f-disp:"Inter",system-ui,sans-serif;   /* headlines: Black       */
  --f-num:"Bodoni Moda",Georgia,serif;      /* numerals only          */
  --f-emph:"Cormorant Garamond",serif;      /* italic accent          */
  --f-body:"Inter",system-ui,sans-serif;
  --f-thai:"Helvetica Thai","Neue Helvetica Thai","Noto Sans Thai","Inter",sans-serif;
  --h:76px; --maxw:1240px; --pad:28px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);background:var(--plaster);color:var(--ink);-webkit-font-smoothing:antialiased;line-height:1.6;overflow-x:hidden}
::selection{background:var(--ink);color:var(--plaster)}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:inherit}

/* ---- 3. TYPO PRIMITIVES -------------------------------------------- */
.over{font-size:11px;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--steel)}
.num{font-family:var(--f-num);letter-spacing:.03em;color:var(--brass)}
.emph{font-family:var(--f-emph);font-style:italic;color:var(--brass)}
.disp{font-family:var(--f-disp);font-weight:800;letter-spacing:-.02em;line-height:1.0;text-transform:uppercase}

/* ---- 4. BILINGUAL — English head + small Thai gloss (แสดง 2 ภาษาพร้อมกัน) ---- */
/* หัวเรื่อง/ป้าย = อังกฤษนำ · ไทยตัวเล็กกำกับใต้ไว้ให้ลูกค้าไทยเข้าใจ */
.b{display:block}
/* Thai = ตัวเล็ก มิวท์ เป็นบรรทัดกำกับใต้ภาษาอังกฤษ (ฟอนต์ Helvetica Thai) */
.th{
  display:block; font-family:var(--f-thai); font-weight:300;
  font-size:.68em; line-height:1.5; letter-spacing:0; text-transform:none;
  color:var(--steel); margin-top:.35em;
}

/* หัวเรื่อง = อังกฤษล้วน (ซ่อนไทยกำกับ เพราะฟอนต์ไทยมีหัวไม่เข้ากับหัวอังกฤษตัวใหญ่)
   ความหมายภาษาไทยอยู่ที่ eyebrow + เนื้อหา body ด้านล่างแล้ว */
.disp .th,.hero h1 .th,h1 .th,h2 .th,h3 .th,.pf-hero h1 .th,
.cap-cell h4 .th,.proc .row h4 .th,.pf-cat-head h2 .th,.close h2 .th{display:none}
.emph,.v{font-family:var(--f-emph)} /* accent = อังกฤษเสมอ */

/* เนื้อหา body → ไทยอ่านง่าย (ไม่จิ๋ว) และซ่อนพารากราฟอังกฤษ */
p.en,.lead .en{display:none}
p.th{display:block;font-family:var(--f-thai);font-weight:300;font-size:16px;line-height:1.75;color:var(--charcoal);margin-top:0}
.lead .th{display:block;font-family:var(--f-thai);font-weight:300;font-size:16px;color:var(--charcoal);margin-top:0}
[data-lang="th"] .stmt p{font-size:16px}

/* UI กระชับ → อังกฤษล้วน (กันรก) */
.btn .th,.util .th,.go .th,.pf-tab .th,.cue .th,.scroll-cue .th,
.lb-close .th,.menu-btn .th,.project .meta .th,.album h3 .th{display:none}

/* ซ่อนปุ่มสลับภาษา (ไม่ต้องสลับแล้ว เพราะแสดง 2 ภาษาพร้อมกัน) */
.util[aria-label="Language"]{display:none}

/* เมนูเต็มจอ → อังกฤษตัวใหญ่ + ไทยเล็กกำกับ */
.ov-nav .th-big{display:none}
.ov-nav .lbl{margin-left:auto}
.ov-nav .lbl .en{display:none}
.ov-nav .lbl .th{display:inline;font-size:15px;margin-top:0;color:var(--steel)}

/* ---- 5. MEDIA (ภาพ/gradient) --------------------------------------- */
.media{position:absolute;inset:0;background:radial-gradient(120% 100% at 65% 25%,#2C2A24 0%,#161512 70%);overflow:hidden}
.media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,13,11,.12) 0%,rgba(14,13,11,0) 34%,rgba(14,13,11,.66) 100%)}
.hero .media,.project .media,.close .media{background:#161512}

/* ---- 6. HEADER (Saint Laurent) ------------------------------------- */
.hdr{position:fixed;inset:0 0 auto 0;z-index:60;height:var(--h);display:grid;
  grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);color:#fff;
  transition:background .4s,color .4s,height .4s,border-color .4s;border-bottom:1px solid transparent}
.hdr.solid{background:var(--plaster);color:var(--ink);height:64px;border-bottom-color:var(--hairline)}
.menu-btn{display:inline-flex;align-items:center;gap:11px;background:none;border:0;color:inherit;cursor:pointer;font-size:11px;font-weight:500;letter-spacing:.28em;text-transform:uppercase}
.menu-btn .bars{display:inline-flex;flex-direction:column;gap:4px;width:22px}
.menu-btn .bars i{height:1px;background:currentColor;display:block}
.wordmark{justify-self:center;font-weight:300;font-size:clamp(13px,1.5vw,17px);letter-spacing:.42em;text-transform:uppercase;text-indent:.42em;white-space:nowrap;color:inherit}
.right{justify-self:end;display:flex;align-items:center;gap:22px}
.util{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:inherit;background:none;border:0;cursor:pointer}
.util .sep{opacity:.4;margin:0 3px}
.util .lng{cursor:pointer;opacity:.5;transition:.2s}
.util .lng.active{opacity:1;font-weight:700}
.util.contact{border:1px solid currentColor;padding:9px 16px}
@media(max-width:720px){.menu-btn .t{display:none}.util.contact{display:none}.hdr{padding:0 18px}.wordmark{letter-spacing:.28em;text-indent:.28em}}

/* fullscreen overlay menu */
.overlay{position:fixed;inset:0;z-index:70;background:var(--plaster);transform:translateY(-100%);transition:transform .55s cubic-bezier(.7,0,.2,1);display:flex;flex-direction:column;padding:var(--pad)}
.overlay.open{transform:translateY(0)}
.ov-top{display:flex;justify-content:space-between;align-items:center;height:var(--h)}
.ov-top .b{font-weight:300;letter-spacing:.42em;text-transform:uppercase;font-size:15px;text-indent:.42em;display:inline}
.close-btn{background:none;border:0;cursor:pointer;font-size:11px;letter-spacing:.28em;text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;color:var(--ink)}
.close-btn .x{font-size:20px}
.ov-body{flex:1;display:flex;align-items:center;max-width:1180px;margin:0 auto;width:100%}
.ov-nav{list-style:none;width:100%}
.ov-nav li{border-top:1px solid var(--hairline)}.ov-nav li:last-child{border-bottom:1px solid var(--hairline)}
.ov-nav a{display:flex;align-items:baseline;gap:24px;padding:20px 4px;color:var(--ink);transition:.3s}
.ov-nav a:hover{color:var(--brass);padding-left:16px}
.ov-nav .n{font-family:var(--f-num);font-size:13px;color:var(--brass);width:38px}
.ov-nav .en,.ov-nav .th-big{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(28px,5vw,52px);line-height:1}
.ov-nav .lbl{font-family:var(--f-thai);color:var(--steel);font-size:15px;margin-left:auto}
@media(max-width:640px){.ov-nav .lbl{display:none}}

/* ---- 7. HERO ------------------------------------------------------- */
.hero{position:relative;height:100vh;min-height:620px;color:var(--plaster);overflow:hidden}
.hero .inner{position:absolute;inset:auto 0 0 0;padding:0 var(--pad) 8vh;max-width:var(--maxw);margin:0 auto}
.hero .over{color:var(--stone);margin-bottom:20px}
.hero h1{font-size:clamp(44px,8.5vw,120px)}
.hero .v{font-family:var(--f-emph);font-style:italic;color:var(--brass);text-transform:none;font-size:clamp(30px,5vw,64px);line-height:1;font-weight:400}
.hero .cue{margin-top:36px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--stone)}

/* ---- 8. STATEMENT -------------------------------------------------- */
.stmt{max-width:1000px;margin:0 auto;padding:16vh var(--pad)}
.stmt .over{margin-bottom:28px}
.stmt h2{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(30px,5vw,60px);line-height:1.04}
.stmt h2 .emph{text-transform:none;font-weight:400}
.stmt p{max-width:60ch;margin-top:28px;font-size:18px;color:#2A2825}
[data-lang="th"] .stmt p{font-family:var(--f-thai);font-size:16px}

/* ---- 9. STATS ROW (credentials · ตัวเลขจริง) ---------------------- */
.stats{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad) 12vh;display:grid;grid-template-columns:repeat(4,1fr);
  gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
.stats .cell{background:var(--plaster);padding:34px 28px}
.stats .n{font-family:var(--f-num);font-size:clamp(34px,4vw,52px);color:var(--ink);line-height:1}
.stats .n u{font-style:normal;color:var(--brass);text-decoration:none}
.stats .l{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);margin-top:12px}
[data-lang="th"] .stats .l{letter-spacing:.02em;text-transform:none;font-family:var(--f-thai)}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}}

/* ---- 10. WORK / PROJECTS ------------------------------------------- */
.work-lead{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad) 10px;display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid var(--hairline)}
.work-lead .over{padding-bottom:16px}
.project{position:relative;height:92vh;min-height:560px;overflow:hidden;color:#fff}
.project .media{transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.project:hover .media{transform:scale(1.04)}
.project .cap{position:absolute;inset:auto 0 0 0;padding:0 var(--pad) 7vh;max-width:var(--maxw);margin:0 auto}
.project .idx{font-family:var(--f-num);font-size:13px;color:var(--brass);margin-bottom:14px}
.project h3{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(32px,6vw,84px);line-height:.98}
.project .meta{margin-top:16px;display:flex;gap:22px;flex-wrap:wrap;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(242,238,229,.75)}
[data-lang="th"] .project .meta{letter-spacing:.04em;text-transform:none;font-family:var(--f-thai)}
.project .go{margin-top:22px;display:inline-flex;gap:10px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:#fff;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:6px}

/* ---- 11. CAPABILITIES ---------------------------------------------- */
.cap-sec{max-width:var(--maxw);margin:0 auto;padding:16vh var(--pad)}
.cap-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline);margin-top:48px}
@media(max-width:820px){.cap-grid{grid-template-columns:1fr}}
.cap-cell{background:var(--plaster);padding:40px 34px}
.cap-cell .n{font-family:var(--f-num);font-size:13px;color:var(--brass)}
.cap-cell h4{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:22px;margin:16px 0 12px}
.cap-cell p{font-size:14.5px;color:var(--steel);line-height:1.7}
[data-lang="th"] .cap-cell p{font-family:var(--f-thai)}

/* ---- 12. PROCESS (7 ขั้นตอน · hairline list) ---------------------- */
.proc{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad) 16vh}
.proc .over{margin-bottom:36px}
.proc .row{display:grid;grid-template-columns:60px 1fr;gap:24px;padding:22px 4px;border-top:1px solid var(--hairline);align-items:baseline}
.proc .row:last-child{border-bottom:1px solid var(--hairline)}
.proc .row .n{font-family:var(--f-num);color:var(--brass);font-size:18px}
.proc .row h4{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:19px}
.proc .row p{color:var(--steel);font-size:14.5px;margin-top:4px}
[data-lang="th"] .proc .row h4{font-family:var(--f-thai);text-transform:none;letter-spacing:0}
[data-lang="th"] .proc .row p{font-family:var(--f-thai)}
@media(max-width:640px){.proc .row{grid-template-columns:1fr}}

/* ---- 13. CLOSING --------------------------------------------------- */
.close{position:relative;height:80vh;min-height:520px;color:#fff;display:flex;align-items:center;overflow:hidden}
.close .inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);width:100%}
.close .over{color:var(--stone);margin-bottom:24px}
.close h2{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(34px,6vw,86px);line-height:.98}
.close h2 .emph{text-transform:none;font-weight:400}
.btn{display:inline-block;margin-top:40px;font-size:13px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding:16px 34px;background:var(--plaster);color:var(--ink);border:1px solid var(--plaster);transition:.3s}
.btn:hover{background:transparent;color:var(--plaster)}
[data-lang="th"] .btn{letter-spacing:.04em}

/* ---- 14. FOOTER ---------------------------------------------------- */
footer{background:var(--ink);color:var(--stone);padding:64px var(--pad) 40px}
footer .in{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:28px;border-top:1px solid var(--hairline-dark);padding-top:32px;font-size:12px;letter-spacing:.06em}
footer .wm{font-weight:300;letter-spacing:.42em;text-transform:uppercase;color:var(--plaster)}

/* ---- 15. PORTFOLIO (HBA aesthetic) --------------------------------- */
.pf-hero{max-width:var(--maxw);margin:0 auto;padding:calc(var(--h) + 12vh) var(--pad) 8vh}
.pf-hero .over{margin-bottom:22px}
.pf-hero h1{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;line-height:1;font-size:clamp(40px,7vw,96px)}
.pf-hero .v{font-family:var(--f-emph);font-style:italic;color:var(--brass);text-transform:none;font-weight:400}
.pf-hero p{max-width:60ch;margin-top:26px;font-size:17px;color:#2A2825}
[data-lang="th"] .pf-hero p{font-family:var(--f-thai);font-size:16px}
[data-lang="th"] .pf-hero h1{font-family:var(--f-thai);text-transform:none;letter-spacing:0;line-height:1.15}

.pf-tabs{position:sticky;top:64px;z-index:40;background:var(--plaster);border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);display:flex;gap:0;max-width:var(--maxw);margin:0 auto}
.pf-tab{flex:0 0 auto;font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--steel);
  padding:20px var(--pad) 20px 0;background:none;border:0;cursor:pointer;transition:.25s}
.pf-tab .num{font-size:11px}
.pf-tab:hover{color:var(--ink)}
.pf-tab.active{color:var(--ink)}
[data-lang="th"] .pf-tab{letter-spacing:.04em;text-transform:none}
@media(max-width:640px){.pf-tabs{flex-wrap:wrap;gap:16px}.pf-tab{padding:14px 0}}

.pf-cat{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad)}
.pf-cat.hide{display:none}
.pf-cat-head{display:flex;align-items:baseline;gap:18px;padding:10vh 0 34px}
.pf-cat-head .n{font-family:var(--f-num);color:var(--brass);font-size:16px}
.pf-cat-head h2{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(24px,3.5vw,42px)}
[data-lang="th"] .pf-cat-head h2{font-family:var(--f-thai);text-transform:none;letter-spacing:0}
.pf-cat-head .count{margin-left:auto;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--steel)}

.album-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);border:1px solid var(--hairline)}
@media(max-width:900px){.album-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.album-grid{grid-template-columns:1fr}}
.album{background:var(--plaster);cursor:pointer;padding:0}
.album .thumb{position:relative;aspect-ratio:4/3;overflow:hidden}
.album .thumb .media{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.album:hover .thumb .media{transform:scale(1.05)}
.album .thumb .lbl{position:absolute;left:16px;bottom:14px;z-index:2;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:rgba(242,238,229,.65)}
.album .info{padding:20px 22px 26px}
.album .idx{font-family:var(--f-num);font-size:12px;color:var(--brass)}
.album h3{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.01em;font-size:18px;margin:8px 0 4px;line-height:1.1}
.album .th-title{font-family:var(--f-thai);font-size:13px;color:var(--steel)}
.album .tag{display:block;margin-top:12px;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel)}

/* ---- 16. LIGHTBOX -------------------------------------------------- */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(12,11,10,.97);color:var(--plaster);
  opacity:0;visibility:hidden;transition:.4s;overflow-y:auto;padding:clamp(24px,5vw,60px)}
.lightbox.open{opacity:1;visibility:visible}
.lb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;max-width:1180px;margin:0 auto 8px}
.lb-head .idx{font-family:var(--f-num);color:var(--brass);font-size:13px;margin-bottom:10px}
.lb-head .en-title{font-family:var(--f-disp);font-weight:800;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(22px,3.4vw,44px);line-height:1}
.lb-head .th-title{font-family:var(--f-thai);color:var(--stone);margin-top:8px}
.lb-close{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--plaster);white-space:nowrap;background:none;border:0;cursor:pointer;display:inline-flex;gap:8px}
.lb-note{max-width:1180px;margin:20px auto;font-size:13px;color:var(--stone);border-left:1px solid var(--brass);padding-left:16px}
.lb-gallery{max-width:1180px;margin:24px auto 0;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
@media(max-width:640px){.lb-gallery{grid-template-columns:1fr}}
.lb-gallery img{width:100%}

/* ---- 17. REVEAL ---------------------------------------------------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto}.reveal{opacity:1;transform:none}.project:hover .media,.album:hover .thumb .media{transform:none}}/* End custom CSS */