/*
Theme Name: Netgallery V0.13.29
Theme URI: https://netgallery.be/
Author: Marnix Van Marcke
Description: Photography portfolio theme for Netgallery.
Version: 0.13.29
Text Domain: netgallery
*/
:root{--bg:#0b0d0f;--panel:#121519;--text:#f4f4f1;--muted:#a8adb3;--line:#30343a;--accent:#fff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;font-weight:300}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.site-header{position:fixed;z-index:50;top:0;left:0;right:0;padding:24px 4vw;display:flex;align-items:center;gap:28px;background:linear-gradient(#080a0ccc,transparent);transition:.3s}.site-header.scrolled{background:#0b0d0ff2;backdrop-filter:blur(12px);padding-top:15px;padding-bottom:15px;border-bottom:1px solid #ffffff12}
.brand{margin-right:auto;line-height:1}.brand-main{font-size:24px;letter-spacing:.34em}.brand-main b{font-weight:650}.brand-sub{font-size:8px;letter-spacing:.28em;color:#d6d8da;margin-top:8px}.menu{display:flex;gap:22px;align-items:center;font-size:12px;letter-spacing:.08em}.menu a{opacity:.82}.menu a:hover{opacity:1}.langs{font-size:10px;letter-spacing:.12em;color:#b9bdc2}.langs a.active{color:#fff}.hamb{display:none;background:none;border:0;color:white;font-size:25px}
.hero{height:100svh;min-height:680px;position:relative;background:url("assets/images/hvitserkur.jpg") center/cover no-repeat;display:flex;align-items:flex-end;padding:8vh 6vw}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0008 0%,transparent 48%),linear-gradient(0deg,#000a 0%,transparent 48%)}.hero-copy{position:relative;z-index:2;max-width:720px;padding-bottom:5vh}.eyebrow{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:#ddd}.hero h1{font-family:Georgia,serif;font-size:clamp(48px,7vw,105px);font-weight:400;line-height:.92;margin:18px 0}.hero p{font-size:17px;line-height:1.6;color:#e3e3e3;max-width:540px}.scroll{position:absolute;z-index:3;right:4vw;bottom:5vh;font-size:10px;letter-spacing:.25em;writing-mode:vertical-rl}
.section{padding:110px 5vw}.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:48px}.section h2{font-family:Georgia,serif;font-size:clamp(38px,5vw,70px);font-weight:400;margin:0}.section-head p{max-width:520px;color:var(--muted);line-height:1.7}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:14px}.tile{position:relative;overflow:hidden;background:#171a1e;min-height:280px}.tile img{width:100%;height:100%;object-fit:cover;transition:transform .8s ease}.tile:hover img{transform:scale(1.025)}.tile .cap{position:absolute;inset:auto 0 0;padding:42px 22px 18px;background:linear-gradient(transparent,#000b);font-size:11px;letter-spacing:.18em;text-transform:uppercase;opacity:0;transition:.3s}.tile:hover .cap{opacity:1}.w8{grid-column:span 8}.w4{grid-column:span 4}.w6{grid-column:span 6}.h2{min-height:560px}
.quote{padding:130px 8vw;background:#f1f0ec;color:#15171a;text-align:center}.quote blockquote{font-family:Georgia,serif;font-size:clamp(30px,4vw,58px);line-height:1.25;max-width:1100px;margin:auto}.quote small{display:block;margin-top:30px;letter-spacing:.22em;text-transform:uppercase;font-size:10px}
.travel{display:grid;grid-template-columns:1fr 1fr;min-height:720px}.travel-image{background:url("assets/images/lofoten-aerial.jpg") center/cover}.travel-copy{padding:10vw 8vw;display:flex;flex-direction:column;justify-content:center;background:#111419}.travel-copy h2{font-family:Georgia,serif;font-size:clamp(42px,5vw,72px);font-weight:400;margin:0 0 25px}.travel-copy p{color:#b9bdc2;line-height:1.8}.btn{display:inline-block;border:1px solid #777;padding:14px 20px;margin-top:20px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;width:max-content}.btn:hover{background:#fff;color:#111}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:#121519}.card img{aspect-ratio:4/3;object-fit:cover}.card div{padding:25px}.card h3{font-family:Georgia,serif;font-size:26px;font-weight:400;margin:0 0 10px}.card p{color:#999;line-height:1.6;font-size:14px}
.site-footer{padding:65px 5vw;border-top:1px solid #25292e;display:flex;justify-content:space-between;color:#8e949a;font-size:11px;letter-spacing:.08em}
.page-hero{padding:180px 5vw 70px}.page-hero h1{font-family:Georgia,serif;font-size:clamp(48px,7vw,92px);font-weight:400;margin:0}.content{max-width:900px;padding:0 5vw 100px;line-height:1.8;color:#c9cdd1}
@media(max-width:900px){.menu{display:none;position:absolute;top:72px;left:0;right:0;background:#0b0d0ff8;padding:25px 5vw;flex-direction:column;align-items:flex-start}.menu.open{display:flex}.hamb{display:block}.langs{display:none}.grid{grid-template-columns:1fr}.w8,.w4,.w6{grid-column:auto}.tile,.h2{min-height:55vw}.travel{grid-template-columns:1fr}.travel-image{min-height:70vw}.cards{grid-template-columns:1fr}.section{padding:80px 5vw}.section-head{display:block}.site-footer{display:block;line-height:2}}


/* V0.3 — true masonry portfolio: complete images, no cropping */
.grid{
  display:block;
  columns:3;
  column-gap:16px;
}
.tile,.tile.w8,.tile.w4,.tile.w6,.tile.h2{
  display:inline-block;
  width:100%;
  min-height:0;
  height:auto;
  margin:0 0 16px;
  break-inside:avoid;
  -webkit-column-break-inside:avoid;
  overflow:hidden;
  vertical-align:top;
}
.tile img{
  width:100%;
  height:auto;
  object-fit:contain;
  display:block;
}
.tile:hover img{transform:none}
@media(max-width:1050px){.grid{columns:2}}
@media(max-width:650px){.grid{columns:1}}


/* V0.3.3 additions */
.center-link{text-align:center;margin:36px 0 0}.text-link{color:inherit;text-decoration:none;border-bottom:1px solid #aaa;padding-bottom:4px}.video-section{background:#f4f3f0}.video-frame{position:relative;aspect-ratio:16/9;max-width:1180px;margin:0 auto;background:#111}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.colorland{padding:110px 6vw;background:#111;color:#fff}.colorland-intro{max-width:760px;margin-bottom:55px}.colorland-intro h2,.about-copy h2{font-size:clamp(42px,6vw,82px);line-height:.95;margin:12px 0 24px}.colorland-intro p,.about-copy p{font-size:18px;line-height:1.7;color:#c9c9c9}.colorland-media{display:grid;grid-template-columns:1.2fr .8fr;gap:24px;align-items:stretch}.colorland-media video,.colorland-media img{width:100%;height:100%;max-height:620px;object-fit:cover;background:#000}.codes-wrap{margin-top:70px}.codes-head{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:28px}.codes-head h3{font-size:36px;margin:8px 0 0}.codes-head p{max-width:520px;color:#aaa}.codes-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.code-card{border:1px solid #3a3a3a;padding:28px;background:#171717}.code-card span{display:block;color:#aaa;font-size:13px;text-transform:uppercase;letter-spacing:.12em}.code-card strong{display:block;font-size:28px;letter-spacing:.06em;margin:16px 0}.code-card p{color:#ddd;line-height:1.5}.copy-code{background:#fff;color:#111;border:0;padding:12px 18px;cursor:pointer;font-weight:700}.codes-note{font-size:13px;color:#999;margin-top:20px}.about{display:grid;grid-template-columns:1fr 1fr;min-height:720px;background:#ebe9e4}.about-image img{width:100%;height:100%;object-fit:cover}.about-copy{padding:9vw 8vw;display:flex;flex-direction:column;justify-content:center}.about-copy p{color:#444}.contact{padding-bottom:130px}
@media(max-width:800px){.colorland-media,.about{grid-template-columns:1fr}.codes-head{display:block}.codes-grid{grid-template-columns:1fr}.about-image{min-height:520px}.colorland{padding:80px 24px}}

/* V0.3.4 — books and focused Colorland offer */
.books-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.book-card{background:#121519;border:1px solid #24282d}.book-cover{aspect-ratio:4/3;overflow:hidden;background:#0b0d0f}.book-cover img{width:100%;height:100%;object-fit:cover}.book-info{padding:24px}.book-info span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:#8f969d}.book-info h3{font-family:Georgia,serif;font-size:25px;font-weight:400;line-height:1.15;margin:10px 0 22px}.books-note{color:#7f858b;font-size:12px;margin-top:26px}.colorland-video{display:grid;grid-template-columns:1.35fr .65fr;gap:32px;align-items:center}.colorland-video video{width:100%;background:#000;max-height:680px}.video-copy h3{font-family:Georgia,serif;font-size:clamp(30px,4vw,50px);font-weight:400;margin:12px 0}.video-copy p{color:#aaa;line-height:1.7}.code-groups{display:grid;grid-template-columns:1fr 2fr 1fr;gap:18px}.code-groups>section{border-top:1px solid #555;padding-top:18px}.code-groups h4{font-family:Georgia,serif;font-size:28px;font-weight:400;margin:0 0 18px}.pending{color:#888;line-height:1.6;font-size:14px}.code-groups .codes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:950px){.books-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.colorland-video,.code-groups{grid-template-columns:1fr}.code-groups .codes-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.books-grid,.code-groups .codes-grid{grid-template-columns:1fr}}


/* V0.3.5 — calmer canvas, constrained width, equal-height photography rows */
:root{--bg:#181818;--panel:#202020;--text:#f0f0ed;--muted:#b2b2ad;--line:#383838}
body{background:var(--bg)}
.site-header{padding-left:max(4vw,calc((100vw - 1500px)/2));padding-right:max(4vw,calc((100vw - 1500px)/2))}.site-header.scrolled{background:#181818f2}
.constrained,.colorland-inner{width:min(1500px,92vw);margin-left:auto;margin-right:auto}.section.constrained{padding-left:0;padding-right:0}.section-head{max-width:1500px}.section-head p{max-width:500px}.hero{padding-left:max(6vw,calc((100vw - 1500px)/2));padding-right:max(6vw,calc((100vw - 1500px)/2))}
/* Fixed visual row height, original aspect ratios remain intact; no cropping */
.justified-gallery{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}.jg-item{height:300px;position:relative;flex:0 0 auto;margin:0;overflow:hidden;background:#202020}.jg-item img{height:100%;width:auto;max-width:none;display:block;object-fit:contain}.jg-item figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 10px;background:linear-gradient(transparent,#000a);font-size:10px;letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:.25s}.jg-item:hover figcaption{opacity:1}
.video-section{background:transparent}.video-frame{max-width:1280px}.quote{background:#e7e5df}
.books-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}.book-card{background:#202020;border-color:#333}.book-cover{aspect-ratio:auto;display:flex;align-items:flex-end;justify-content:center;background:#111;padding:12px}.book-cover img{width:100%;height:auto;object-fit:contain}.book-info{padding:18px 20px 20px}.book-info h3{font-size:22px;margin-bottom:12px}.blurb-note{color:#777!important}
.colorland{background:#202020;padding:105px 0}.colorland-intro{max-width:900px}.colorland-intro h2{font-size:clamp(42px,5vw,72px)}.colorland-visuals{display:grid;grid-template-columns:1fr 2fr;gap:18px;margin:40px 0 55px}.colorland-visuals img{width:100%;height:320px;object-fit:cover}.product-columns{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.product-col{border-top:1px solid #555;padding-top:22px}.product-col-head{min-height:205px}.product-col h3{font-family:Georgia,serif;font-size:38px;font-weight:400;margin:8px 0 12px}.product-col-head p{color:#aaa;line-height:1.6;font-size:14px}.code-list{display:grid;gap:10px;margin-top:25px}.code-card{padding:18px;background:#181818;border-color:#3b3b3b}.code-card strong{font-size:21px;margin:10px 0}.code-card p{font-size:13px;margin:0 0 14px}.copy-code{padding:9px 13px}.codes-note{line-height:1.6}
.about{min-height:620px;background:#e7e5df;grid-template-columns:minmax(340px,520px) minmax(0,1fr);align-items:center;padding:80px max(5vw,calc((100vw - 1300px)/2));gap:80px}.about-image{display:flex;justify-content:center}.about-image img{width:min(100%,390px);height:auto;max-height:520px;object-fit:contain}.about-copy{padding:0;max-width:650px}.about-copy h2{font-size:clamp(38px,5vw,66px)}
.content{max-width:950px;margin:0 auto}.site-footer{padding-left:max(5vw,calc((100vw - 1500px)/2));padding-right:max(5vw,calc((100vw - 1500px)/2))}
@media(max-width:1100px){.jg-item{height:250px}.books-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.product-columns{grid-template-columns:1fr}.product-col-head{min-height:0;margin-bottom:20px}.code-list{grid-template-columns:repeat(2,minmax(0,1fr))}.about{gap:45px}}
@media(max-width:760px){.jg-item{height:210px}.books-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.colorland-visuals{grid-template-columns:1fr}.colorland-visuals img{height:auto}.about{grid-template-columns:1fr;padding:70px 6vw}.about-image img{width:min(78vw,360px)}.code-list{grid-template-columns:1fr}}
@media(max-width:520px){.jg-item{height:auto;width:100%}.jg-item img{width:100%;height:auto}.books-grid{grid-template-columns:1fr}.constrained,.colorland-inner{width:90vw}}

/* V0.3.6 — editorial welcome, true justified rows, balanced offers */
:root{--bg:#181818;--panel:#222;--text:#f5f5f2;--muted:#bdbdb8}
.welcome{padding:145px 0 95px;background:#181818}.welcome-inner{width:min(1200px,90vw);margin:auto}.welcome-title{text-align:center;margin-bottom:48px}.welcome-title h1{font-family:Georgia,serif;font-size:clamp(48px,6vw,82px);font-weight:400;letter-spacing:.01em;margin:12px 0 8px;color:#f6f5f1}.welcome-title p{margin:0;color:#bcbcb7;letter-spacing:.18em;text-transform:uppercase;font-size:11px}.welcome-collage{display:grid;grid-template-columns:1.15fr .8fr 1fr;grid-template-rows:210px 210px;gap:12px;position:relative}.wc{margin:0;overflow:hidden;background:#111}.wc img{width:100%;height:100%;object-fit:cover}.wc-a{grid-row:1/3}.wc-b{grid-column:2}.wc-c{grid-column:3}.wc-d{grid-column:2}.wc-e{grid-column:3}.wc-f{display:none}.welcome-signature{position:absolute;right:4%;bottom:-34px;font-family:"Brush Script MT","Segoe Script",cursive;font-size:clamp(34px,4vw,58px);font-style:italic;color:#f5f2ea;transform:rotate(-5deg);text-shadow:0 2px 14px #000}.welcome-foot{display:flex;justify-content:space-between;gap:40px;align-items:center;margin-top:64px;border-top:1px solid #383838;padding-top:28px}.welcome-foot p{margin:0;color:#b9b9b4;max-width:620px;line-height:1.7}
/* JS computes the exact width/height of every complete row. Images remain uncropped. */
.justified-gallery{display:block}.jg-row{display:flex;width:100%;gap:12px;margin-bottom:12px}.jg-row .jg-item{height:auto;flex:0 0 auto}.jg-row .jg-item img{width:100%;height:100%;object-fit:contain}.jg-last{justify-content:flex-start}.jg-last .jg-item{height:280px}.jg-item{margin:0;position:relative;overflow:hidden;background:#202020}
.video-section{background:#111!important;width:100%!important;max-width:none!important;padding-left:max(4vw,calc((100vw - 1500px)/2))!important;padding-right:max(4vw,calc((100vw - 1500px)/2))!important}.books-section{background:#222;width:100%!important;max-width:none!important;padding-left:max(4vw,calc((100vw - 1500px)/2))!important;padding-right:max(4vw,calc((100vw - 1500px)/2))!important}.books-section .section-head,.books-section .books-grid,.books-section .books-note{max-width:1500px;margin-left:auto;margin-right:auto}.video-section .section-head,.video-section .video-frame{max-width:1500px;margin-left:auto;margin-right:auto}.video-section .video-frame{max-width:1280px}
.about-copy h2{color:#171717!important;white-space:pre-line}.about-copy p{color:#454545!important}.about-copy .eyebrow{color:#5b5b5b}
.product-summaries{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:52px 0 70px}.product-summary{border-top:1px solid #5a5a5a;padding:24px 4px 8px;min-height:230px;display:flex;flex-direction:column}.product-summary h3{font-family:Georgia,serif;font-size:38px;font-weight:400;margin:8px 0 12px}.product-summary p{color:#aaa;line-height:1.65;font-size:14px;flex:1}.codes-head-v36{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:24px}.codes-head-v36 h3{font-family:Georgia,serif;font-size:42px;font-weight:400;margin:8px 0 0}.codes-head-v36 p{max-width:520px;color:#aaa;line-height:1.6}.balanced-codes{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;align-items:start}.code-column{display:grid;gap:14px}.code-card{min-height:190px;display:flex;flex-direction:column}.code-card .code-type{min-height:32px}.code-card p{flex:1}.copy-code{width:max-content}
@media(max-width:900px){.welcome{padding-top:120px}.welcome-collage{grid-template-columns:1fr 1fr;grid-template-rows:260px 220px 220px}.wc-a{grid-row:1/3}.wc-b,.wc-c,.wc-d,.wc-e{grid-column:auto}.wc-e{display:none}.wc-f{display:block}.product-summaries,.balanced-codes{grid-template-columns:1fr}.product-summary{min-height:0}.codes-head-v36{display:block}.code-column{grid-template-columns:repeat(2,1fr)}.jg-last .jg-item{height:230px}}
@media(max-width:620px){.welcome-collage{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:180px 180px}.wc-a{grid-row:1/3}.wc-d,.wc-e,.wc-f{display:none}.welcome-signature{font-size:34px;bottom:-24px}.welcome-foot{display:block}.welcome-foot .text-link{display:inline-block;margin-top:18px}.code-column{grid-template-columns:1fr}.jg-last .jg-item{height:auto;width:100%!important}.jg-last .jg-item img{width:100%;height:auto}}

/* V0.3.7 — chapter rhythm, six-image welcome, refined signature */
.chapter-welcome{background:#17191c}
.chapter-photography{background:#23262a!important;width:100%!important;max-width:none!important;padding-left:max(4vw,calc((100vw - 1500px)/2))!important;padding-right:max(4vw,calc((100vw - 1500px)/2))!important}
.chapter-video{background:#101215!important}
.chapter-books{background:#292725!important}
.chapter-colorland{background:#1d2326!important}
.chapter-about{background:#e7e3dc!important}
.chapter-contact{background:#151719!important;width:100%!important;max-width:none!important;padding-left:max(4vw,calc((100vw - 1500px)/2))!important;padding-right:max(4vw,calc((100vw - 1500px)/2))!important}
.chapter-photography .section-head,.chapter-photography .justified-gallery,.chapter-photography .center-link,.chapter-contact .section-head,.chapter-contact>.btn{max-width:1500px;margin-left:auto;margin-right:auto}
.welcome{padding:132px 0 88px}.welcome-inner{width:min(1180px,90vw)}
.welcome-signature-top{text-align:center;margin:0 auto 28px}.welcome-signature-top img{width:min(620px,72vw);height:auto;margin:0 auto;filter:drop-shadow(0 2px 10px #0007)}.welcome-signature-top div{margin-top:-8px;color:#c5c8c9;font-size:11px;letter-spacing:.62em;padding-left:.62em}
.welcome-rule{height:1px;background:#ffffff35;margin:0 0 34px}
.welcome-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px 26px}.welcome-grid figure{margin:0;aspect-ratio:3/2;overflow:hidden;background:#101214}.welcome-grid img{width:100%;height:100%;object-fit:cover;display:block}
.welcome-foot{margin-top:38px;padding-top:24px}.welcome-foot p{font-size:14px}
/* Fully justified photography rows. JS computes every row, including the last one, to exactly 100% width. */
.justified-gallery{display:block!important}.jg-row{display:flex!important;width:100%!important;gap:12px;margin:0 0 12px}.jg-row .jg-item{margin:0!important;flex:0 0 auto!important;height:auto}.jg-row .jg-item img{width:100%!important;height:100%!important;object-fit:contain!important}.jg-last{justify-content:stretch!important}.jg-last .jg-item{height:auto!important}
@media(max-width:800px){.welcome-grid{grid-template-columns:repeat(2,1fr);gap:14px}.welcome-signature-top img{width:min(560px,86vw)}.welcome-signature-top div{letter-spacing:.42em;padding-left:.42em}}
@media(max-width:520px){.welcome-grid{grid-template-columns:1fr}.welcome-grid figure{aspect-ratio:3/2}.welcome-signature-top div{font-size:9px;letter-spacing:.32em;padding-left:.32em}}


/* V0.3.8 — compact mobile welcome, framed six-image panel, ScenicByMarnix feature */
.welcome-grid{background:#272a2d;padding:24px;border-radius:2px;box-shadow:0 18px 50px #0002}
.scenic-feature{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(360px,.65fr);min-height:540px;background:#1a1d20;color:#f5f5f5}
.scenic-feature-image{display:block;min-height:540px;background:linear-gradient(90deg,transparent 60%,#0004),url("assets/images/lofoten-aerial.jpg") center/cover no-repeat}
.scenic-feature-copy{padding:7vw max(5vw,calc((100vw - 1500px)/2));padding-left:6vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.scenic-feature-copy h2{font-family:Georgia,serif;font-size:clamp(42px,5vw,72px);font-weight:400;line-height:1;margin:12px 0 22px}
.scenic-feature-copy p{max-width:480px;color:#c9c9c9;font-size:17px;line-height:1.7;margin:0}
.scenic-btn{border-color:#d8d5cc;color:#f5f5f5;margin-top:28px}.scenic-btn:hover{background:#f2f0ea;color:#151719}
@media(max-width:800px){
 .welcome{padding:96px 0 58px}.welcome-inner{width:min(94vw,1180px)}
 .welcome-signature-top{margin-bottom:18px}.welcome-signature-top img{width:min(470px,80vw)}.welcome-rule{margin-bottom:22px}
 .welcome-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}.welcome-grid figure{aspect-ratio:3/2}
 .welcome-foot{margin-top:24px;padding-top:18px;gap:20px}.welcome-foot p{line-height:1.5}
 .scenic-feature{grid-template-columns:1fr;min-height:0}.scenic-feature-image{min-height:52vw}.scenic-feature-copy{padding:48px 6vw}
}
@media(max-width:520px){
 .welcome{padding:82px 0 42px}.welcome-signature-top img{width:78vw}.welcome-signature-top div{margin-top:-3px}
 .welcome-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px}.welcome-grid figure{aspect-ratio:3/2}
 .welcome-foot{margin-top:18px;padding-top:15px}.welcome-foot p{font-size:12px}.welcome-foot .text-link{font-size:12px;margin-top:12px}
 .scenic-feature-image{min-height:48vw}.scenic-feature-copy{padding:38px 6vw}.scenic-feature-copy h2{font-size:38px}.scenic-feature-copy p{font-size:14px}.scenic-btn{margin-top:20px}
 .section{padding-top:62px;padding-bottom:62px}.section-head{margin-bottom:34px}
}


/* V0.3.9 — editorial welcome composition + prominent ScenicByMarnix continuation */
/* Desktop: asymmetric portfolio spread. Images keep their complete native aspect ratio. */
.welcome-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:18px 20px;padding:28px}
.welcome-grid figure{aspect-ratio:auto!important;overflow:visible;background:transparent}
.welcome-grid figure:nth-child(1){grid-column:1 / span 7}
.welcome-grid figure:nth-child(2){grid-column:8 / span 5;margin-top:9%}
.welcome-grid figure:nth-child(3){grid-column:1 / span 4;margin-top:-2%}
.welcome-grid figure:nth-child(4){grid-column:5 / span 8;margin-top:2%}
.welcome-grid figure:nth-child(5){grid-column:1 / span 7;margin-top:0}
.welcome-grid figure:nth-child(6){grid-column:8 / span 5;margin-top:7%}
.welcome-grid img{width:100%;height:auto!important;object-fit:contain!important;display:block}
/* ScenicByMarnix now continues the photographic sequence instead of adding a separate image. */
.scenic-feature{display:block;min-height:0;background:#d9d5cc;color:#151719;border-top:1px solid #ffffff18}
.scenic-feature-copy{width:min(1500px,92vw);margin:0 auto;padding:72px 0 78px;display:block;text-align:center}
.scenic-feature-copy .eyebrow{color:#57534d;font-weight:600}
.scenic-feature-copy h2{font-family:Georgia,serif;font-size:clamp(48px,6.5vw,92px);font-weight:400;line-height:.95;letter-spacing:.025em;margin:18px 0 14px;color:#151719}
.scenic-feature-copy h3{font-family:Georgia,serif;font-size:clamp(20px,2vw,30px);font-weight:400;margin:0 0 24px;color:#34312d}
.scenic-feature-copy p{max-width:760px;margin:0 auto;color:#4b4843;font-size:17px;line-height:1.75}
.scenic-btn{display:inline-block;margin-top:32px;background:#151719;color:#f4f1e9;border:1px solid #151719;padding:16px 25px;letter-spacing:.1em;font-weight:600}
.scenic-btn:hover{background:transparent;color:#151719}
@media(max-width:800px){
 .welcome-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px;align-items:start}
 .welcome-grid figure:nth-child(n){grid-column:auto;margin-top:0}
 .welcome-grid img{width:100%;height:auto!important;object-fit:contain!important}
 .scenic-feature-copy{padding:52px 0 56px}
 .scenic-feature-copy h2{font-size:clamp(42px,10vw,64px)}
}
@media(max-width:520px){
 .welcome-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:9px}
 .scenic-feature-copy{width:88vw;padding:42px 0 46px}
 .scenic-feature-copy h2{font-size:40px;line-height:1}
 .scenic-feature-copy h3{font-size:19px}
 .scenic-feature-copy p{font-size:14px;line-height:1.6}
 .scenic-btn{font-size:11px;padding:14px 16px;margin-top:24px}
}


/* V0.3.11 — Climate Change triptych welcome. The three panels always remain one work. */
.welcome-triptych{display:grid;grid-template-columns:1fr 1.496fr 1fr;gap:14px;align-items:stretch;background:#272a2d;padding:24px;overflow:hidden}
.welcome-triptych figure{margin:0;min-width:0;background:#eef2f4;overflow:hidden}
.welcome-triptych img{display:block;width:100%;height:auto;object-fit:contain}
.triptych-caption{display:flex;justify-content:center;align-items:baseline;gap:14px;margin:17px 0 0;color:#d9d9d5}
.triptych-caption strong{font-family:Georgia,serif;font-size:18px;font-weight:400;letter-spacing:.02em}
.triptych-caption span{font-size:9px;letter-spacing:.24em;text-transform:uppercase;color:#92979b}
@media(max-width:800px){.welcome-triptych{gap:7px;padding:10px}.triptych-caption{margin-top:12px}.triptych-caption strong{font-size:16px}}
@media(max-width:520px){.welcome-triptych{grid-template-columns:1fr 1.496fr 1fr;gap:4px;padding:6px}.triptych-caption{gap:9px;margin-top:9px}.triptych-caption strong{font-size:14px}.triptych-caption span{font-size:8px}.welcome-foot{margin-top:14px!important}}

/* V0.3.12 — contained gallery presentation for the Climate Change triptych */
.chapter-welcome{background:#17191c;color:#f4f4f1;padding:0 0 68px}
.welcome-inner{width:100%;max-width:none;margin:0}
.welcome-brand-stage{background:#17191c;padding:132px 5vw 42px;color:#f5f5f1}
.welcome-brand-stage-inner{width:min(1180px,90vw);margin:0 auto}
.welcome-brand-stage .welcome-rule{margin-bottom:0}
.triptych-stage{background:#17191c;padding:48px 4vw 46px}
.triptych-card{width:min(1260px,92vw);margin:0 auto;background:#f5f5f3;color:#34383b;padding:54px 58px 38px}
.welcome-triptych{display:grid;grid-template-columns:1fr 1.496fr 1fr;gap:38px;align-items:start;background:transparent;padding:0;overflow:visible}
.welcome-triptych figure{margin:0;min-width:0;background:transparent;overflow:visible}
.welcome-triptych img{display:block;width:100%;height:auto;object-fit:contain}
.welcome-triptych figcaption{text-align:center;margin-top:17px;font-size:9px;letter-spacing:.20em;text-transform:uppercase;color:#666b6e;white-space:normal;line-height:1.45}
.triptych-caption,.triptych-heading{display:none}
.triptych-caption-bottom{text-align:center;margin-top:34px;padding-top:25px;border-top:1px solid #deded9}
.triptych-caption-bottom strong{display:block;font-family:Georgia,serif;font-size:21px;font-weight:400;letter-spacing:.03em;color:#34383b}
.triptych-caption-bottom span{display:block;margin-top:8px;font-size:8px;letter-spacing:.34em;text-transform:uppercase;color:#8b8e90}
.chapter-welcome .welcome-foot{width:min(1180px,90vw);margin:0 auto;padding-top:22px;border-top:1px solid #ffffff20;color:#c8cbcd}
.chapter-welcome .welcome-foot p{color:#aeb2b5}
.chapter-welcome .text-link{color:#f4f4f1}
@media(max-width:800px){
 .welcome-brand-stage{padding:96px 5vw 30px}
 .triptych-stage{padding:32px 3vw 34px}
 .triptych-card{width:min(94vw,1260px);padding:34px 28px 27px}
 .welcome-triptych{gap:16px}
 .welcome-triptych figcaption{font-size:7px;letter-spacing:.11em;margin-top:10px}
 .triptych-caption-bottom{margin-top:24px;padding-top:19px}
 .triptych-caption-bottom strong{font-size:18px}
}
@media(max-width:520px){
 .chapter-welcome{padding-bottom:38px}
 .welcome-brand-stage{padding:82px 4vw 24px}
 .triptych-stage{padding:24px 2.5vw 27px}
 .triptych-card{width:95vw;padding:18px 12px 17px}
 .welcome-triptych{grid-template-columns:1fr 1.496fr 1fr;gap:8px}
 .welcome-triptych figcaption{font-size:6px;letter-spacing:.02em;margin-top:7px;line-height:1.35}
 .triptych-caption-bottom{margin-top:17px;padding-top:14px}
 .triptych-caption-bottom strong{font-size:16px}
 .triptych-caption-bottom span{font-size:7px;margin-top:6px}
 .chapter-welcome .welcome-foot{margin-top:0!important;padding-top:17px}
}

/* V0.3.13 — compact portfolio masthead + gallery-card triptych */
body.home .site-header{display:none}
.chapter-welcome{padding:0;background:#17191c}
.chapter-welcome .welcome-inner{width:100%;margin:0;padding:0 0 34px}
.welcome-brand-stage{background:#17191c;padding:24px 4vw 18px}
.welcome-brand-stage-inner{width:min(1120px,92vw);margin:0 auto;text-align:center}
.welcome-signature-top{margin:0 auto 12px}
.welcome-signature-top img{width:min(380px,62vw);height:auto;margin:0 auto;filter:drop-shadow(0 2px 8px #0006)}
.welcome-signature-top div{margin-top:-5px;color:#bfc3c5;font-size:10px;letter-spacing:.62em;padding-left:.62em}
.welcome-rule{height:1px;background:#b9bbba;opacity:.65;margin:16px 0 0}
.welcome-home-nav{display:flex;justify-content:center;align-items:center;gap:clamp(24px,4vw,58px);padding:20px 0 3px;font-size:10px;letter-spacing:.20em;text-transform:uppercase;color:#d9dad8}
.welcome-home-nav a{opacity:.84;transition:opacity .2s}.welcome-home-nav a:hover{opacity:1}
.triptych-stage{background:#17191c;padding:18px 4vw 18px}
.triptych-card{width:min(1260px,92vw);margin:0 auto;background:#f5f5f3;color:#34383b;padding:28px 38px 24px}
.welcome-triptych{display:grid;grid-template-columns:1fr 1.496fr 1fr;gap:38px;align-items:start;background:transparent;padding:0;overflow:visible}
.welcome-triptych figure{margin:0;min-width:0;background:transparent;overflow:visible}
.welcome-triptych img{display:block;width:100%;height:auto;object-fit:contain}
.welcome-triptych figcaption{text-align:center;margin-top:12px;font-family:Georgia,serif;font-size:10px;letter-spacing:.13em;text-transform:none;color:#55595b;line-height:1.35}
.triptych-caption-bottom,.triptych-caption,.triptych-heading{display:none!important}
.chapter-welcome .welcome-foot{display:none}
@media(max-width:800px){
 .welcome-brand-stage{padding-top:18px}.welcome-signature-top img{width:min(350px,72vw)}
 .welcome-home-nav{gap:18px;flex-wrap:wrap;padding-top:16px;row-gap:10px}
 .triptych-stage{padding:14px 3vw 16px}.triptych-card{width:94vw;padding:22px 22px 19px}
 .welcome-triptych{gap:16px}.welcome-triptych figcaption{font-size:8px;letter-spacing:.06em;margin-top:9px}
}
@media(max-width:520px){
 .welcome-brand-stage{padding:14px 3vw 10px}.welcome-signature-top{margin-bottom:8px}.welcome-signature-top img{width:68vw}
 .welcome-signature-top div{font-size:8px;letter-spacing:.42em;padding-left:.42em;margin-top:-2px}.welcome-rule{margin-top:11px}
 .welcome-home-nav{font-size:8px;gap:13px;padding-top:12px;row-gap:8px}
 .triptych-stage{padding:10px 2.5vw 13px}.triptych-card{width:95vw;padding:12px 10px 11px}
 .welcome-triptych{grid-template-columns:1fr 1.496fr 1fr;gap:7px}.welcome-triptych figcaption{font-size:6px;letter-spacing:0;margin-top:6px;line-height:1.25}
 .chapter-welcome .welcome-inner{padding-bottom:18px}
}

/* V0.4 — editable theme. Visual defaults remain identical to V0.3.13. */


/* V0.4.1 — hybrid light portfolio, full-screen welcome, grouped photography */
body.home{background:#f7f6f3}
.chapter-welcome{min-height:100svh;position:relative;background-image:linear-gradient(90deg,rgba(7,10,12,.67),rgba(7,10,12,.14) 62%,rgba(7,10,12,.28)),var(--hero-image);background-size:cover;background-position:center;display:flex;color:#fff}
.welcome-overlay{width:100%;min-height:100svh;display:flex;flex-direction:column;padding:24px 4vw 42px;background:linear-gradient(180deg,rgba(0,0,0,.22),transparent 32%,rgba(0,0,0,.18))}
.chapter-welcome .welcome-brand-stage-inner{width:min(1180px,92vw);margin:0 auto;text-align:center}
.chapter-welcome .welcome-signature-top img{width:min(360px,62vw)}
.chapter-welcome .welcome-signature-top div{color:#f3f2ed;text-shadow:0 1px 8px #000}
.chapter-welcome .welcome-rule{background:#fff;opacity:.7}
.chapter-welcome .welcome-home-nav{color:#fff;text-shadow:0 1px 8px #000}
.hero-copy-v041{width:min(1180px,92vw);margin:auto auto 5vh;align-self:center;text-shadow:0 2px 18px #0008}
.hero-copy-v041 h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(44px,6vw,88px);line-height:.98;max-width:780px;margin:16px 0 18px}
.hero-copy-v041 p{max-width:610px;font-size:16px;line-height:1.65;color:#f0efeb}
.hero-cta{display:inline-block;margin-top:18px;background:#f7f6f3;color:#151719;text-decoration:none;padding:14px 20px;font-size:10px;letter-spacing:.16em;text-transform:uppercase;text-shadow:none}
.hero-scroll{position:absolute;right:4vw;bottom:32px;font-size:9px;letter-spacing:.2em;text-transform:uppercase}
.chapter-photography{background:#f7f6f3!important;color:#17191c;width:100%!important;max-width:none!important;padding-left:max(5vw,calc((100vw - 1320px)/2))!important;padding-right:max(5vw,calc((100vw - 1320px)/2))!important}
.chapter-photography .eyebrow{color:#65615b}.chapter-photography .section-head p{color:#5d5b57}.chapter-photography .section-head{margin-bottom:60px}
.photo-series{margin:0 0 72px}.series-head{display:flex;align-items:baseline;justify-content:space-between;border-top:1px solid #c9c5bd;padding-top:17px;margin-bottom:22px}.series-head h3{font-family:Georgia,serif;font-size:30px;font-weight:400;margin:0}.series-head span{font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:#77736d}
.series-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 22px}.series-item{margin:0}.photo-lightbox{display:block;border:0;padding:0;background:none;width:100%;cursor:zoom-in}.series-item img{display:block;width:100%;height:220px;object-fit:contain;background:#eeece7}.series-item figcaption{font-size:10px;letter-spacing:.08em;color:#5f5b55;margin-top:10px}
.climate-project{background:#efede8;color:#17191c;padding:100px 5vw}.climate-inner{width:min(1320px,92vw);margin:auto}.project-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}.project-head h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(38px,5vw,62px);margin:7px 0 0}.project-head .eyebrow{color:#68635d}.project-head p{color:#68635d}.climate-project .triptych-card{width:100%;background:#f7f6f3;padding:30px 36px 25px}.climate-project .welcome-triptych{gap:36px}.climate-project .welcome-triptych figcaption{color:#55514c}
.ng-lightbox{position:fixed;inset:0;z-index:99999;background:#0a0b0cf2;display:none;align-items:center;justify-content:center;padding:5vw}.ng-lightbox.open{display:flex}.ng-lightbox img{max-width:90vw;max-height:84vh;object-fit:contain}.ng-lightbox-close{position:absolute;right:25px;top:18px;border:0;background:none;color:#fff;font-size:40px;cursor:pointer}.ng-lightbox-caption{position:absolute;bottom:22px;color:#ddd;font-size:11px;letter-spacing:.12em}
.chapter-books{background:#f7f6f3!important;color:#17191c}.chapter-books .section-head p,.chapter-books .book-info span{color:#666}.chapter-books .book-card{background:#eeece7;border-color:#d6d2ca}.chapter-books .book-cover{background:#e6e3dc}
@media(max-width:900px){.chapter-welcome{min-height:100svh}.welcome-overlay{min-height:100svh}.hero-copy-v041{margin-bottom:7vh}.series-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.series-item img{height:200px}.project-head{display:block}.climate-project .welcome-triptych{gap:16px}}
@media(max-width:600px){.welcome-overlay{padding:14px 3vw 28px}.chapter-welcome .welcome-home-nav{font-size:8px;gap:13px;row-gap:8px}.hero-copy-v041 h1{font-size:43px}.hero-copy-v041 p{font-size:14px}.hero-scroll{display:none}.series-grid{grid-template-columns:1fr 1fr;gap:20px 10px}.series-item img{height:145px}.series-item figcaption{font-size:8px}.climate-project{padding:70px 3vw}.climate-project .triptych-card{padding:12px 10px 11px}.climate-project .welcome-triptych{gap:7px}}
\n\n/* V0.4.2 — media-picker fix, edge-to-edge hero, photography without white side bands */
html,body{padding:0;background:#101418}body.home{margin:0!important}
.chapter-welcome{margin:0!important;top:0}
.series-grid{align-items:start}
.series-item,.photo-lightbox{background:transparent!important}
.series-item img{width:100%;height:auto!important;max-height:none;object-fit:contain;background:transparent!important}
.ng-admin .ng-image-field{display:grid;grid-template-columns:96px minmax(220px,1fr) auto auto;align-items:center;gap:8px}
.ng-admin .ng-image-preview{width:96px;height:64px;background:#f0f0f1;border:1px solid #dcdcde;display:flex;align-items:center;justify-content:center;overflow:hidden}
.ng-admin .ng-image-preview img{width:100%;height:100%;object-fit:cover}
@media(max-width:782px){.ng-admin .ng-image-field{grid-template-columns:82px 1fr}.ng-admin .ng-image-preview{width:82px;height:58px}.ng-admin .ng-image-field .ng-media,.ng-admin .ng-image-field .ng-clear-image{grid-column:2}}
\n\n/* V0.4.3 repair: clean top edge and guaranteed contrast on dark chapters */
html,body{margin:0!important;padding:0!important}
body.home main{margin:0!important;padding:0!important}
body.home .chapter-welcome{margin-top:0!important;border-top:0!important}
.chapter-welcome,.chapter-video,.chapter-colorland,.chapter-contact,.scenic-feature,.chapter-quote,.site-footer{color:#f5f5f2!important}
.chapter-welcome p,.chapter-video p,.chapter-colorland p,.chapter-contact p,.scenic-feature p,.chapter-quote small,.site-footer{color:#d7d7d3!important}
.chapter-welcome h1,.chapter-welcome h2,.chapter-video h1,.chapter-video h2,.chapter-colorland h1,.chapter-colorland h2,.chapter-colorland h3,.chapter-contact h1,.chapter-contact h2,.scenic-feature h1,.scenic-feature h2,.scenic-feature h3,.chapter-quote blockquote{color:#f7f7f4!important}
.chapter-video .eyebrow,.chapter-colorland .eyebrow,.chapter-contact .eyebrow,.scenic-feature .eyebrow{color:#c9cbc9!important}
.chapter-colorland .code-card,.chapter-colorland .code-card p{color:#ededeb!important}
.chapter-colorland .code-card span,.chapter-colorland .codes-note,.chapter-colorland .codes-head-v36 p{color:#c8c8c5!important}


/* V0.4.4 repair: explicit contrast for light and dark chapters */
.chapter-photography,.chapter-books,.climate-project{color:#181818!important}
.chapter-photography h1,.chapter-photography h2,.chapter-photography h3,.chapter-photography h4,.chapter-photography .section-title,.chapter-books h1,.chapter-books h2,.chapter-books h3,.chapter-books h4,.climate-project h1,.climate-project h2,.climate-project h3{color:#181818!important}
.chapter-photography p,.chapter-photography figcaption,.chapter-photography .eyebrow,.chapter-books p,.chapter-books figcaption,.chapter-books .eyebrow,.climate-project p,.climate-project figcaption,.climate-project .eyebrow{color:#3a3a3a!important}
.chapter-photography a,.chapter-books a,.climate-project a{color:#222!important}
.chapter-welcome,.chapter-video,.chapter-colorland,.chapter-contact{color:#f5f5f5!important}
.chapter-welcome h1,.chapter-welcome h2,.chapter-welcome h3,.chapter-video h1,.chapter-video h2,.chapter-video h3,.chapter-colorland h1,.chapter-colorland h2,.chapter-colorland h3,.chapter-contact h1,.chapter-contact h2,.chapter-contact h3{color:#f5f5f5!important}
.chapter-welcome p,.chapter-video p,.chapter-colorland p,.chapter-contact p{color:#d0d0d0!important}
\n\n/* V0.4.5 repair — hero image, Scenic contrast and page bottom */
/* Important: never use the background shorthand on .chapter-welcome; it erases the selected hero background-image. */
html,body{min-height:100%;background:#151719!important}
body.home{background:#151719!important}
.chapter-welcome{background-color:#17191c;background-repeat:no-repeat;background-size:cover;background-position:center}
.scenic-feature{background:#d9d5cc!important;color:#151719!important}
.scenic-feature .eyebrow{color:#57534d!important}
.scenic-feature-copy h2{color:#151719!important}
.scenic-feature-copy h3{color:#34312d!important}
.scenic-feature-copy p{color:#4b4843!important}
.scenic-feature .scenic-btn{background:#151719!important;color:#f4f1e9!important;border-color:#151719!important}
.scenic-feature .scenic-btn:hover{background:transparent!important;color:#151719!important}
.chapter-contact{margin-bottom:0!important}
.site-footer{margin:0!important;background:#151719!important;color:#bfc1be!important;border-top:1px solid #303235}
body.home>footer.site-footer:last-child{padding-bottom:max(65px,env(safe-area-inset-bottom))}

/* V0.4.6 — readability, equal photo heights, quote contrast, compact page ending */
.welcome-home-nav{font-size:12px!important;font-weight:600!important;letter-spacing:.14em!important;color:#fff!important}
.welcome-home-nav a{opacity:.96!important;text-shadow:0 1px 7px rgba(0,0,0,.85)}
.eyebrow{font-size:12px!important;font-weight:600!important;letter-spacing:.25em!important}
.series-head span,.series-item figcaption,.book-info span,.blurb-note,.codes-note,.code-type,.site-footer{font-size:12px!important;font-weight:500!important}
.hero-scroll{font-size:10px!important;font-weight:600!important}

/* Series use a common image height while preserving every original aspect ratio. */
.series-grid{display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;gap:28px 18px!important}
.series-item{width:auto!important;max-width:100%;flex:0 0 auto}
.series-item .photo-lightbox{width:auto!important;max-width:100%}
.series-item img{height:240px!important;width:auto!important;max-width:100%!important;object-fit:contain!important;background:transparent!important}

/* Quote is on a light background: force readable dark typography. */
.chapter-quote{background:#e7e5df!important;color:#181818!important}
.chapter-quote blockquote{color:#202020!important;font-weight:400!important}
.chapter-quote small{color:#4b4b48!important;font-weight:600!important}

/* Keep Contact + footer compact; no artificial minimum height below the content. */
.chapter-contact{min-height:0!important;padding-top:80px!important;padding-bottom:70px!important}
.site-footer{min-height:0!important;padding-top:34px!important;padding-bottom:max(34px,env(safe-area-inset-bottom))!important}
html,body,body.home{height:auto!important;min-height:0!important}

@media(max-width:900px){
 .welcome-home-nav{font-size:11px!important}
 .series-item img{height:210px!important}
 .chapter-contact{padding-top:65px!important;padding-bottom:55px!important}
}
@media(max-width:600px){
 .chapter-welcome .welcome-home-nav{font-size:10px!important;letter-spacing:.10em!important}
 .series-item img{height:150px!important}
 .series-grid{gap:20px 10px!important}
}


/* V0.4.7 — stronger Climate Change separation and hard reset of page ending */
.climate-project{background:#dedbd4!important;}
.climate-project .triptych-card{background:#f8f7f4!important;border:1px solid #cbc7be!important;}

/* The contact/footer ending must size strictly to its content. */
body.home{padding-bottom:0!important;margin-bottom:0!important;}
body.home main{padding-bottom:0!important;margin-bottom:0!important;}
.chapter-contact{height:auto!important;min-height:0!important;margin:0!important;padding:70px max(5vw,calc((100vw - 1500px)/2)) 60px!important;}
body.home footer.site-footer, body.home>footer.site-footer:last-child{
  position:static!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding-top:30px!important;
  padding-bottom:30px!important;
}
html,body,body.home{padding-bottom:0!important;margin-bottom:0!important;}
@media(max-width:900px){
 .chapter-contact{padding-top:58px!important;padding-bottom:48px!important;}
 body.home footer.site-footer,body.home>footer.site-footer:last-child{padding-top:26px!important;padding-bottom:max(26px,env(safe-area-inset-bottom))!important;}
}


/* V0.4.8 — approved visual refinements */
/* Strong separation: Climate Change = warm taupe, Scenic = clean warm white. */
.climate-project{background:#c9c3b9!important;color:#17191c!important;}
.climate-project .triptych-card{background:#f8f7f4!important;border:1px solid #aaa398!important;}
.scenic-feature{background:#f7f5f0!important;color:#151719!important;}
.scenic-feature .eyebrow{color:#4e4a44!important;}
.scenic-feature-copy h2{color:#111315!important;}
.scenic-feature-copy h3{color:#2f2d29!important;}
.scenic-feature-copy p{color:#3e3b36!important;}
/* Scenic CTA must be visible without hover on mouse and touch devices. */
.scenic-feature .scenic-btn,.scenic-feature .scenic-btn:link,.scenic-feature .scenic-btn:visited{
 background:#151719!important;color:#fff!important;border:1px solid #151719!important;
 opacity:1!important;visibility:visible!important;font-weight:650!important;
 box-shadow:none!important;
}
.scenic-feature .scenic-btn:hover,.scenic-feature .scenic-btn:focus{background:#2b2e31!important;color:#fff!important;border-color:#2b2e31!important;}
/* Make the hero CTA unmistakable. */
.hero-cta,.hero-cta:link,.hero-cta:visited{
 background:#f8f7f3!important;color:#111315!important;border:1px solid #f8f7f3!important;
 padding:16px 24px!important;font-size:11px!important;font-weight:700!important;letter-spacing:.15em!important;
 box-shadow:0 2px 14px #0003!important;
}
.hero-cta:hover,.hero-cta:focus{background:#fff!important;color:#000!important;transform:translateY(-1px);}
/* Contact becomes the photographic final chapter. It fills the remaining viewport,
   so there is no empty black field after jumping to Contact on tablet browsers. */
.chapter-contact{
 width:100%!important;max-width:none!important;margin:0!important;
 min-height:calc(100svh - 84px)!important;height:auto!important;
 padding:0!important;
 background:
   linear-gradient(90deg,rgba(10,12,14,.88) 0%,rgba(10,12,14,.60) 47%,rgba(10,12,14,.55) 100%),
   url("assets/images/lofoten-aerial.jpg") center 48%/cover no-repeat!important;
 color:#f7f7f4!important;display:flex!important;align-items:center!important;
}
.contact-inner{width:min(1500px,90vw);margin:0 auto;padding:90px 0 78px;display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,.75fr);gap:80px;align-items:center;}
.contact-copy h2{font-family:Georgia,serif;font-size:clamp(48px,5.4vw,78px);font-weight:400;line-height:1;margin:12px 0 24px;color:#fff!important;}
.contact-copy p{max-width:620px;color:#ededeb!important;font-size:17px;line-height:1.7;}
.contact-btn,.contact-btn:link,.contact-btn:visited{background:#f7f5f0!important;color:#151719!important;border-color:#f7f5f0!important;font-weight:700!important;font-size:11px!important;opacity:1!important;visibility:visible!important;}
.contact-btn:hover,.contact-btn:focus{background:#fff!important;color:#000!important;}
.contact-quote{text-align:center;justify-self:end;max-width:520px;color:#fff;}
.contact-quote blockquote{font-family:Georgia,serif;font-style:italic;font-size:clamp(25px,2.5vw,38px);line-height:1.35;margin:0;color:#fff;}
.contact-quote-rule{width:190px;max-width:70%;height:1px;background:#ffffff80;margin:24px auto 20px;}
.contact-quote img{width:min(260px,70%);margin:0 auto;filter:brightness(1.2);}
body.home footer.site-footer,body.home>footer.site-footer:last-child{height:auto!important;min-height:0!important;margin:0!important;padding:24px 5vw max(24px,env(safe-area-inset-bottom))!important;background:#111416!important;}
@media(max-width:800px){
 .chapter-contact{min-height:auto!important;}
 .contact-inner{grid-template-columns:1fr;gap:48px;padding:72px 0 58px;}
 .contact-quote{justify-self:start;text-align:left;}
 .contact-quote-rule{margin-left:0;}
 .contact-quote img{margin-left:0;}
}


/* V0.4.9 — contact/photo/footer repair */
/* Never stretch the final chapter to the viewport: its photograph is a compact band. */
.chapter-contact{
  width:100%!important;max-width:none!important;
  height:auto!important;min-height:0!important;max-height:none!important;
  margin:0!important;padding:0!important;
  background-image:linear-gradient(90deg,rgba(10,12,14,.88) 0%,rgba(10,12,14,.58) 48%,rgba(10,12,14,.62) 100%),var(--contact-image)!important;
  background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important;
  display:block!important;
}
.contact-inner{width:min(1500px,90vw)!important;margin:0 auto!important;padding:76px 0 68px!important;min-height:0!important;height:auto!important;}
body.home footer.site-footer,body.home>footer.site-footer:last-child{
  position:static!important;display:flex!important;height:auto!important;min-height:0!important;max-height:none!important;
  margin:0!important;padding:24px 5vw max(24px,env(safe-area-inset-bottom))!important;
  background:#111416!important;
}
/* ScenicByMarnix CTA: readable at rest, not dependent on hover. */
.about-copy .btn,.about-copy .btn:link,.about-copy .btn:visited,
.scenic-feature .scenic-btn,.scenic-feature .scenic-btn:link,.scenic-feature .scenic-btn:visited{
  background:#151719!important;color:#fff!important;border:1px solid #151719!important;
  opacity:1!important;visibility:visible!important;font-weight:700!important;
}
.about-copy .btn:hover,.about-copy .btn:focus,.scenic-feature .scenic-btn:hover,.scenic-feature .scenic-btn:focus{background:#303438!important;color:#fff!important;}
@media(max-width:800px){
 .contact-inner{padding:60px 0 52px!important;}
 body.home footer.site-footer,body.home>footer.site-footer:last-child{display:block!important;}
}


/* V0.4.10 — structural contact/footer repair
   One authoritative ending; no viewport-height rules or shorthand backgrounds. */
html{height:auto!important;min-height:0!important;}
body.home{height:auto!important;min-height:0!important;margin:0!important;padding:0!important;overflow-x:hidden;}
body.home main{height:auto!important;min-height:0!important;margin:0!important;padding-bottom:0!important;}
.chapter-contact{
  position:relative!important;
  isolation:isolate;
  display:block!important;
  height:auto!important;
  min-height:0!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  background-color:#151719!important;
  background-image:var(--contact-image)!important;
  background-position:center center!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
}
.chapter-contact::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(90deg,rgba(8,10,12,.88) 0%,rgba(8,10,12,.66) 48%,rgba(8,10,12,.72) 100%);
}
.contact-inner{
  width:min(1500px,90vw)!important;margin:0 auto!important;
  padding:76px 0 68px!important;height:auto!important;min-height:0!important;
}
body.home .site-footer{
  box-sizing:border-box!important;position:relative!important;inset:auto!important;
  display:flex!important;flex:0 0 auto!important;height:auto!important;min-height:0!important;max-height:none!important;
  margin:0!important;padding:24px max(5vw,calc((100vw - 1500px)/2)) max(24px,env(safe-area-inset-bottom))!important;
  background:#111416!important;border-top:1px solid #34383c!important;
  overflow:visible!important;
}
@media(max-width:900px){
 .contact-inner{padding:58px 0 50px!important;}
 body.home .site-footer{display:block!important;}
}

/* V0.5 — personal portfolio, multilingual content, rotating photographic series */
.site-header{font-weight:500}.menu{font-size:13px;font-weight:500}.langs{font-size:11px;font-weight:600}.langs a.active{text-decoration:underline;text-underline-offset:5px}.welcome-langs{margin-left:18px;font-weight:650}
.chapter-photography{color:#181818!important}.chapter-photography .eyebrow,.chapter-photography .section-head p{color:#555!important}.chapter-photography h2{color:#181818!important}.selection-grid{display:flex;flex-wrap:wrap;gap:28px 16px;align-items:flex-start}.selection-item{margin:0;flex:0 0 auto}.selection-item img{height:235px;width:auto;max-width:min(100%,620px);object-fit:contain}.selection-item figcaption{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#666;margin-top:8px}.photo-lightbox{border:0;padding:0;background:transparent;cursor:zoom-in}
.projects-showcase{padding:105px 5vw 85px;color:#17191b}.projects-inner{width:min(1320px,100%);margin:auto}.project-heading{text-align:center;margin-bottom:45px}.project-heading h2{font-family:Georgia,serif;font-size:clamp(38px,4.8vw,68px);font-weight:400;margin:12px 0}.project-rotator{position:relative}.project-slide{display:none;opacity:0}.project-slide.active{display:block;animation:ngfade .8s ease forwards}@keyframes ngfade{to{opacity:1}}.project-meta{text-align:center;min-height:92px}.project-meta h3{font-family:Georgia,serif;font-size:30px;font-weight:400;margin:0 0 8px}.project-meta p{margin:0 auto 25px;max-width:700px;color:#4e4a44}.triptych-v05{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:end;background:#f6f4ef;padding:24px;border:1px solid #aaa398}.triptych-v05 figure{margin:0;min-width:0}.triptych-v05 img{width:100%;height:auto;display:block}.triptych-v05 figcaption{text-align:center;font-size:9px;letter-spacing:.11em;text-transform:uppercase;color:#59554f;margin-top:10px}.project-controls{display:flex;justify-content:center;align-items:center;gap:18px;margin-top:25px}.project-prev,.project-next,.project-dot{border:0;background:transparent;cursor:pointer;color:#242424}.project-prev,.project-next{font-size:32px;line-height:1}.project-dots{display:flex;gap:10px}.project-dot{width:8px;height:8px;border:1px solid #444;border-radius:50%;padding:0}.project-dot.active{background:#222}
.scenic-feature{min-height:480px}.chapter-quote blockquote{color:#2f2f2f!important;font-weight:450!important}.codes-grid-v05{display:grid;grid-template-columns:2fr 1fr 1fr;gap:18px;margin-top:45px}.code-group{display:grid;align-content:start;gap:10px}.code-group h3{font-family:Georgia,serif;font-size:28px;margin:0 0 8px}.code-group .code-card{margin:0}
.about{padding-top:95px!important;padding-bottom:95px!important}.about-image img{max-height:520px;object-fit:contain}
.chapter-contact{min-height:0!important;height:auto!important;display:block!important}.contact-inner{padding:72px 0 62px!important}.contact-form{max-width:600px;display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}.contact-form label{display:grid;gap:7px;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:#ddd}.contact-form label:nth-of-type(3){grid-column:1/-1}.contact-form input,.contact-form textarea{width:100%;border:1px solid #ffffff55;background:#1118;color:#fff;padding:12px;font:inherit}.contact-form textarea{resize:vertical}.contact-form .contact-btn{grid-column:1/-1;margin-top:0}.ng-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}.contact-status{margin-top:16px;padding:10px 12px;border:1px solid #ffffff55;width:max-content;max-width:100%}.site-footer{min-height:0!important;height:auto!important;padding:24px 5vw!important}
@media(max-width:900px){.selection-item img{height:190px}.codes-grid-v05{grid-template-columns:1fr}.welcome-langs{display:block;margin:10px 0 0}.triptych-v05{gap:10px;padding:12px}.contact-form{grid-template-columns:1fr}.contact-form label:nth-of-type(3),.contact-form .contact-btn{grid-column:auto}}
@media(max-width:600px){.selection-item img{height:145px;max-width:100%}.selection-grid{gap:20px 9px}.projects-showcase{padding:75px 3vw 65px}.triptych-v05{gap:6px;padding:7px}.triptych-v05 figcaption{font-size:7px;letter-spacing:.04em}.project-meta{min-height:115px}.site-header .langs{display:block;margin-left:auto}.brand{max-width:180px}.brand-main{font-size:18px}}
@media(prefers-reduced-motion:reduce){.project-slide.active{animation:none}.tile img{transition:none}}

/* V0.5.1 — justified portfolio, fixed triptych geometry, compact Colorland, privacy/consent */
.chapter-photography{background:#f7f6f3!important}.projects-showcase{background:#c9c3b9!important}.scenic-feature{background:#f7f5f0!important}
.selection-grid{display:block!important}.selection-row{display:flex;gap:16px;margin-bottom:28px;align-items:flex-start}.selection-row .selection-item{margin:0;min-width:0}.selection-row .selection-item img{display:block;width:100%!important;height:auto!important;max-width:none!important;object-fit:contain!important}.selection-row .selection-item figcaption{margin-top:8px}
.triptych-v05{display:flex!important;align-items:flex-start!important;justify-content:center!important}.triptych-v05 figure{flex:none!important}.triptych-v05 img{width:auto!important;max-width:none!important;object-fit:contain!important;display:block}
.codes-grid-v05{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:16px!important}.code-group{min-width:0}.code-group .code-card{padding:14px 15px!important}.code-group .code-card strong{font-size:15px}.code-group .code-card p{margin:6px 0!important;line-height:1.35}.code-group .copy-code{padding:8px 10px!important}.contact-privacy-note{font-size:12px!important;line-height:1.55!important;color:#cfd1d1!important;max-width:600px!important}.contact-privacy-note a{text-decoration:underline;text-underline-offset:3px}.footer-links a,.cookie-settings{color:inherit}.cookie-settings{font:inherit;letter-spacing:inherit;border:0;background:none;padding:0;cursor:pointer}.cookie-banner{position:fixed;z-index:9999;left:50%;bottom:18px;transform:translateX(-50%);width:min(760px,calc(100vw - 28px));background:#17191bf5;color:#f5f5f2;border:1px solid #ffffff2b;box-shadow:0 12px 45px #0008;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:24px}.cookie-banner[hidden]{display:none!important}.cookie-banner strong{font-family:Georgia,serif;font-size:20px;font-weight:400}.cookie-banner p{margin:6px 0 0;color:#d5d7d7;font-size:12px;line-height:1.5}.cookie-actions{display:flex;gap:10px;flex:none}.cookie-actions button{min-width:100px;border:1px solid #d9d9d5;background:transparent;color:#fff;padding:10px 14px;cursor:pointer}.cookie-actions button:hover{background:#f5f5f2;color:#17191b}
@media(max-width:900px){.codes-grid-v05{grid-template-columns:1fr!important}.cookie-banner{align-items:flex-start;flex-direction:column}.cookie-actions{width:100%}.cookie-actions button{flex:1}.selection-row{gap:9px;margin-bottom:20px}}


/* V0.5.2 — Projects timing/readability, Climate Change notes and compact Colorland codes */
.project-heading .eyebrow{color:#34312d!important;font-size:13px!important;font-weight:650!important;letter-spacing:.28em!important}
.project-stage{display:grid;position:relative;align-items:start}
.project-slide{display:block!important;grid-area:1/1;opacity:0;visibility:hidden;pointer-events:none;transition:opacity 1s ease,visibility 0s linear 1s}
.project-slide.active{opacity:1;visibility:visible;pointer-events:auto;z-index:2;animation:none!important;transition:opacity 1s ease,visibility 0s linear 0s}
.project-notes{margin:24px auto 0;max-width:1120px;border-top:1px solid #918a80;padding-top:16px}
.project-notes summary{cursor:pointer;list-style:none;text-align:center;font-size:11px;font-weight:700;letter-spacing:.15em;text-transform:uppercase;color:#2f2c28}.project-notes summary::-webkit-details-marker{display:none}.project-notes .notes-close{display:none}.project-notes[open] .notes-open{display:none}.project-notes[open] .notes-close{display:inline}.project-notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin-top:24px}.project-notes-grid h4{font-family:Georgia,serif;font-size:20px;font-weight:400;margin:0 0 9px}.project-notes-grid p{font-size:13px;line-height:1.65;color:#49453f;margin:0}
.colorland-validity{margin:0 0 28px;padding:18px 22px;border:1px solid #ded9ce;background:#f1eee7;color:#181818;display:flex;align-items:baseline;justify-content:space-between;gap:24px}.colorland-validity strong{font-size:15px;letter-spacing:.08em}.colorland-validity span{font-size:13px;font-weight:500}.codes-grid-v05{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important}.code-group .code-card{padding:11px 13px!important}.code-type{font-size:10px!important}.code-copy-row{display:flex;align-items:center;gap:9px;margin-top:6px}.code-copy-row strong{display:block!important;flex:1;min-width:0;margin:0!important;font-size:16px!important;letter-spacing:.045em!important}.code-copy-row .copy-code{flex:none;padding:6px 9px!important;font-size:10px!important}.code-price-line{margin:7px 0 0!important;white-space:nowrap;font-size:12px!important}.code-price-line span{display:inline!important;color:#aaa!important;font-size:inherit!important;text-transform:none!important;letter-spacing:0!important}.colorland-shipping{margin:22px 0 0;color:#c9c9c9;font-size:13px;line-height:1.5}
@media(max-width:900px){.project-notes-grid{grid-template-columns:1fr}.colorland-validity{display:block}.colorland-validity span{display:block;margin-top:7px}.codes-grid-v05{grid-template-columns:1fr!important}.code-price-line{white-space:normal}}


/* V0.5.3 — reliable triptych rotator, compact codes, Vimeo video gallery */
.projects-inner{width:min(1500px,100%)!important}
.project-stage{display:grid!important;position:relative!important;overflow:visible!important}
.project-slide{grid-area:1/1!important;display:block!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity 1s ease!important}
.project-slide.active{opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:2!important}
.triptych-v05{display:flex!important;justify-content:center!important;align-items:flex-start!important;gap:24px!important;padding:24px!important;overflow:hidden!important}
.triptych-v05 figure{flex:0 0 auto!important;margin:0!important;min-width:0!important}
.triptych-v05 img{display:block!important;width:auto!important;max-width:none!important;height:auto;object-fit:contain!important}
.code-group .code-card{height:auto!important;min-height:0!important;padding:11px 13px!important;display:block!important}
.code-group{grid-auto-rows:max-content!important;align-content:start!important}
.code-price-line{padding:0!important;margin:7px 0 0!important}
.video-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.video-card{appearance:none;border:0;padding:0;background:transparent;color:inherit;text-align:left;cursor:pointer;font:inherit}
.video-thumb{display:block;position:relative;aspect-ratio:16/9;overflow:hidden;background:#08090a}
.video-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.video-card:hover .video-thumb img{transform:scale(1.015)}
.video-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;padding-left:4px;background:#111c;color:#fff;border:1px solid #fff8;font-size:19px}
.video-title{display:block;margin-top:12px;font-family:Georgia,serif;font-size:20px;line-height:1.25}
.video-modal{position:fixed;z-index:10000;inset:0;background:#000e;display:none;align-items:center;justify-content:center;padding:5vw}
.video-modal.open{display:flex}.video-modal-frame{width:min(1280px,90vw);aspect-ratio:16/9;background:#000}.video-modal-frame iframe{width:100%;height:100%;border:0}
.video-modal-close{position:absolute;right:3vw;top:2vw;border:0;background:transparent;color:#fff;font-size:42px;cursor:pointer}
@media(max-width:900px){.triptych-v05{gap:10px!important;padding:12px!important}.video-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.triptych-v05{gap:6px!important;padding:7px!important}.video-gallery{grid-template-columns:1fr}.video-play{width:48px;height:48px}}

/* V0.5.4 — centred project presentation, uniform passe-partout, per-video copy, Colorland intro */
.projects-inner{width:min(1500px,94vw)!important;margin-inline:auto!important}
.project-heading,.project-meta{text-align:center!important;margin-inline:auto!important}
.project-slide{width:100%!important;margin-inline:auto!important}
.triptych-v05{width:100%!important;margin-inline:auto!important;padding:24px!important;gap:24px!important;justify-content:center!important;align-items:flex-start!important;background:#f6f4ef!important}
.triptych-v05 figure{margin:0!important}
.project-notes summary{font-size:12px!important}
.video-item{min-width:0}.video-item .video-title{margin:12px 0 0;font-family:Georgia,serif;font-size:20px;font-weight:400;line-height:1.25}.video-description{margin:7px 0 0!important;color:#cfd1d1!important;font-size:13px!important;line-height:1.55!important;max-width:42em}.video-card{width:100%}
.colorland-intro{max-width:900px}.colorland-intro>p{line-height:1.7}.colorland-ai{margin:24px 0 34px;padding:18px 20px;border-left:3px solid #e7e1d5;background:#ffffff0a}.colorland-ai strong{font-size:12px;letter-spacing:.14em}.colorland-ai p{margin:8px 0 0!important;line-height:1.6}
@media(max-width:900px){.triptych-v05{padding:12px!important;gap:10px!important}}
@media(max-width:600px){.triptych-v05{padding:7px!important;gap:6px!important}}
.announcement-toast{position:fixed;z-index:9998;right:22px;bottom:22px;width:min(390px,calc(100vw - 30px));background:#f7f6f3;color:#17191b;border:1px solid #d7d2c9;box-shadow:0 12px 36px #0005;padding:15px 44px 15px 17px}.announcement-toast[hidden]{display:none!important}.announcement-toast p{margin:0;font-size:13px;line-height:1.45;font-weight:600}.announcement-toast a{display:inline-block;margin-top:8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #777;padding-bottom:2px}.announcement-close{position:absolute;right:11px;top:8px;border:0;background:none;font-size:22px;cursor:pointer;color:#333}@media(max-width:600px){.announcement-toast{left:15px;right:15px;bottom:15px;width:auto}}

/* V0.5.4 — centred project presentation, uniform passe-partout, per-video copy, Colorland intro */
.projects-inner{width:min(1500px,94vw)!important;margin-inline:auto!important}.project-heading,.project-meta{text-align:center!important;margin-inline:auto!important}.project-slide{width:100%!important;margin-inline:auto!important}.triptych-v05{width:100%!important;margin-inline:auto!important;padding:24px!important;gap:24px!important;justify-content:center!important;align-items:flex-start!important;background:#f6f4ef!important}.triptych-v05 figure{margin:0!important}.project-notes summary{font-size:12px!important}.video-item{min-width:0}.video-item .video-title{margin:12px 0 0;font-family:Georgia,serif;font-size:20px;font-weight:400;line-height:1.25}.video-description{margin:7px 0 0!important;color:#cfd1d1!important;font-size:13px!important;line-height:1.55!important;max-width:42em}.video-card{width:100%}.colorland-intro{max-width:900px}.colorland-intro>p{line-height:1.7}.colorland-ai{margin:24px 0 34px;padding:18px 20px;border-left:3px solid #e7e1d5;background:#ffffff0a}.colorland-ai strong{font-size:12px;letter-spacing:.14em}.colorland-ai p{margin:8px 0 0!important;line-height:1.6}
@media(max-width:900px){.triptych-v05{padding:12px!important;gap:10px!important}}@media(max-width:600px){.triptych-v05{padding:7px!important;gap:6px!important}}
.announcement-toast{position:fixed;z-index:9998;right:22px;bottom:22px;width:min(390px,calc(100vw - 30px));background:#f7f6f3;color:#17191b;border:1px solid #d7d2c9;box-shadow:0 12px 36px #0005;padding:15px 44px 15px 17px}.announcement-toast[hidden]{display:none!important}.announcement-toast p{margin:0;font-size:13px;line-height:1.45;font-weight:600}.announcement-toast a{display:inline-block;margin-top:8px;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid #777;padding-bottom:2px}.announcement-close{position:absolute;right:11px;top:8px;border:0;background:none;font-size:22px;cursor:pointer;color:#333}@media(max-width:600px){.announcement-toast{left:15px;right:15px;bottom:15px;width:auto}}


/* V0.5.6 — exact centred triptychs and fully justified portfolio rows */
.projects-inner{width:min(1500px,94vw)!important;margin-inline:auto!important;overflow:hidden!important}
.project-stage,.project-slide{width:100%!important;min-width:0!important}
.project-meta{text-align:center!important;width:100%!important;margin-inline:auto!important}
.triptych-v05{box-sizing:border-box!important;width:100%!important;max-width:100%!important;margin-inline:auto!important;padding:24px!important;gap:24px!important;display:flex!important;justify-content:center!important;align-items:flex-start!important;overflow:hidden!important}
.triptych-v05 figure{box-sizing:border-box!important;flex:0 0 auto!important;margin:0!important;min-width:0!important;text-align:center!important}
.triptych-v05 img{display:block!important;max-width:none!important;object-fit:contain!important}
.selection-grid{display:block!important;width:100%!important}
.selection-row{display:flex!important;width:100%!important;gap:16px!important;margin:0 0 28px!important;align-items:flex-start!important}
.selection-row .selection-item{flex:0 0 auto!important;margin:0!important;min-width:0!important}
.selection-row .photo-lightbox{display:block!important;width:100%!important}
.selection-row .selection-item img{display:block!important;width:100%!important;height:auto!important;max-width:none!important;object-fit:contain!important}
@media(max-width:900px){.triptych-v05{padding:12px!important;gap:10px!important}.selection-row{gap:9px!important}}
@media(max-width:600px){.triptych-v05{padding:7px!important;gap:6px!important}.selection-row{gap:9px!important;margin-bottom:20px!important}}

/* V0.5.6 — compact, content-driven project presentation.
   Each triptych is sized by one common image height and its passe-partout
   wraps the composition instead of stretching to the full section width. */
.projects-showcase{padding:82px 5vw 48px!important;min-height:0!important;height:auto!important}
.projects-inner{width:min(1500px,94vw)!important;margin-inline:auto!important}
.project-heading{margin-bottom:30px!important}
.project-meta{min-height:0!important;height:auto!important;margin:0 auto 28px!important;text-align:center!important}
.project-meta h3{margin:0 0 8px!important}
.project-meta p{margin:0 auto!important;max-width:760px!important;line-height:1.45!important}
.project-stage{width:100%!important;min-height:0!important;height:auto!important;align-items:start!important}
.project-slide{width:100%!important;min-height:0!important;height:auto!important}
.triptych-v05{box-sizing:border-box!important;width:max-content!important;max-width:100%!important;margin:0 auto!important;padding:20px!important;gap:20px!important;display:flex!important;justify-content:center!important;align-items:flex-start!important;overflow:hidden!important;background:#f6f4ef!important}
.triptych-v05 figure{flex:0 0 auto!important;margin:0!important;text-align:center!important}
.triptych-v05 img{display:block!important;width:auto!important;height:auto;max-width:none!important;max-height:400px!important;object-fit:contain!important}
.triptych-v05 figcaption{margin-top:9px!important}
.project-controls{margin-top:20px!important}
.project-notes{margin-top:20px!important}
@media(max-width:900px){.projects-showcase{padding:68px 4vw 42px!important}.project-heading{margin-bottom:25px!important}.project-meta{margin-bottom:24px!important}.triptych-v05{padding:12px!important;gap:10px!important}.triptych-v05 img{max-height:340px!important}}
@media(max-width:600px){.projects-showcase{padding:58px 3vw 36px!important}.project-meta{margin-bottom:20px!important}.triptych-v05{padding:7px!important;gap:6px!important}.triptych-v05 img{max-height:240px!important}.project-controls{margin-top:16px!important}}

/* V0.6 — dynamic portfolio/series, HDR originals and adjustable hero overlay */
.welcome-overlay{background:linear-gradient(rgba(0,0,0,var(--hero-overlay, .25)),rgba(0,0,0,var(--hero-overlay, .25)))!important}
.portfolio-scenic{margin:34px auto 0;padding:24px 0 0;border-top:1px solid #d8d5cf;display:flex;align-items:center;justify-content:space-between;gap:24px;color:#2f3132}
.portfolio-scenic span{font-family:Georgia,serif;font-size:clamp(18px,2vw,26px)}
.portfolio-scenic-btn{margin:0;background:transparent;color:#17191b;border:1px solid #17191b;white-space:nowrap}.portfolio-scenic-btn:hover{background:#17191b;color:#fff}
.series-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;width:min(1320px,100%);margin:0 auto;padding:20px;background:#f6f4ef}
.series-gallery figure{margin:0;min-width:0}.series-gallery .photo-lightbox{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in}.series-gallery img{width:100%;height:auto;display:block}.series-gallery figcaption{text-align:center;margin-top:9px;color:#444;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.ng-lightbox img{-webkit-user-drag:none;user-select:none}.photo-lightbox img{-webkit-user-drag:none}
@media(max-width:800px){.portfolio-scenic{display:block}.portfolio-scenic-btn{margin-top:18px}.series-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}}
@media(max-width:520px){.series-gallery{grid-template-columns:1fr}}
\n\n/* V0.6.2 — equal-height dynamic series without cropping or distortion. */
.series-gallery{display:flex!important;flex-wrap:wrap!important;align-items:flex-start!important;justify-content:center!important;gap:20px!important;width:max-content!important;max-width:100%!important;box-sizing:border-box!important}
.series-gallery figure{flex:0 0 auto!important;width:auto!important;max-width:100%!important}
.series-gallery .photo-lightbox{width:auto!important;max-width:100%!important}
.series-gallery img{display:block!important;width:auto!important;height:340px!important;max-width:100%!important;object-fit:contain!important}
@media(max-width:900px){.series-gallery img{height:280px!important}.series-gallery{gap:12px!important}}
@media(max-width:600px){.series-gallery{display:flex!important;flex-wrap:nowrap!important;overflow-x:auto!important;justify-content:flex-start!important}.series-gallery img{height:210px!important;max-width:none!important}}


/* V0.6.3 — true zero hero overlay and compact one-row photographic series. */
/* Remove the legacy gradient that lived on the hero itself. The only darkness is now --hero-overlay. */
.chapter-welcome{background-image:var(--hero-image)!important;background-color:#17191c!important}
.welcome-overlay{background:rgba(0,0,0,var(--hero-overlay,0))!important}

/* Series: keep 2–3 photographs together on one desktop row, equal visible height, no crop/distortion. */
.series-gallery{display:flex!important;flex-wrap:nowrap!important;align-items:flex-start!important;justify-content:center!important;gap:16px!important;width:min(1320px,100%)!important;max-width:100%!important;padding:18px!important;overflow:hidden!important}
.series-gallery figure{flex:0 1 auto!important;width:auto!important;min-width:0!important;max-width:calc((100% - 32px)/3)!important}
.series-gallery .photo-lightbox{width:100%!important;max-width:none!important}
.series-gallery img{display:block!important;height:240px!important;width:auto!important;max-width:100%!important;object-fit:contain!important;margin:0 auto!important}
@media(max-width:900px){.series-gallery{overflow-x:auto!important;justify-content:flex-start!important}.series-gallery figure{max-width:none!important;flex:0 0 auto!important}.series-gallery img{height:210px!important;max-width:none!important}}
@media(max-width:600px){.series-gallery img{height:165px!important}}


/* V0.6.4 — larger responsive series, active-slide sizing and stronger hero legibility. */
/* Only the active project participates in document height; hidden slides no longer create empty space. */
.project-stage{position:relative!important;display:block!important}
.project-slide{position:absolute!important;left:0!important;top:0!important;width:100%!important}
.project-slide.active{position:relative!important;left:auto!important;top:auto!important}

/* Ordinary series: generous passe-partout and one coherent row on desktop. */
.series-gallery{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:flex-start!important;
  justify-content:center!important;
  gap:18px!important;
  width:min(1560px,96vw)!important;
  max-width:none!important;
  margin-inline:50%!important;
  transform:translateX(-50%)!important;
  padding:26px!important;
  overflow:visible!important;
  box-sizing:border-box!important;
}
.series-gallery figure{flex:0 0 auto!important;width:auto!important;max-width:none!important;margin:0!important}
.series-gallery .photo-lightbox{display:block!important;width:auto!important;max-width:none!important}
.series-gallery img{
  display:block!important;
  width:auto!important;
  height:clamp(150px,17vw,340px)!important;
  max-width:none!important;
  object-fit:contain!important;
  margin:0!important;
}
@media(max-width:700px){
  .series-gallery{width:min(94vw,620px)!important;display:grid!important;grid-template-columns:1fr!important;gap:14px!important;padding:14px!important;transform:translateX(-50%)!important}
  .series-gallery figure,.series-gallery .photo-lightbox{width:100%!important}
  .series-gallery img{width:100%!important;height:auto!important;max-width:100%!important}
}

/* The hero may deliberately have a 0% overlay, so text itself must remain readable. */
.chapter-welcome .hero-copy-v041 .eyebrow{color:#fff!important;text-shadow:0 2px 12px rgba(0,0,0,.95)!important}
.chapter-welcome .hero-copy-v041 p{color:rgba(255,255,255,.94)!important;text-shadow:0 2px 12px rgba(0,0,0,.95)!important;font-weight:400!important}

/* V0.6.5 — content-driven project compositions and restored utility UI. */
.project-stage{position:relative!important;display:block!important;transition:height .2s ease}
.project-slide{position:absolute!important;inset:0 auto auto 0!important;width:100%!important;display:flex!important;flex-direction:column!important;justify-content:center!important;opacity:0!important;pointer-events:none!important}
.project-slide.active{position:absolute!important;opacity:1!important;pointer-events:auto!important}
.project-slide.ng-measure{position:relative!important;opacity:0!important;pointer-events:none!important;height:auto!important}
.project-gallery{display:flex!important;flex-wrap:nowrap!important;align-items:flex-start!important;justify-content:center!important;gap:clamp(6px,1.2vw,18px)!important;margin:0 auto!important;padding:clamp(8px,1.7vw,26px)!important;background:#f6f4ef!important;box-sizing:border-box!important;max-width:100%!important;overflow:hidden!important}
.project-gallery figure{flex:0 0 auto!important;margin:0!important;min-width:0!important}.project-gallery .photo-lightbox{display:block!important;width:100%!important;border:0!important;padding:0!important;background:transparent!important;cursor:zoom-in!important}.project-gallery img{display:block!important;max-width:none!important;object-fit:contain!important}.project-gallery figcaption{text-align:center;margin-top:9px;color:#444;font-size:10px;letter-spacing:.1em;text-transform:uppercase;white-space:normal}
@media(max-width:600px){.project-gallery{gap:5px!important;padding:7px!important}.project-gallery figcaption{font-size:8px;letter-spacing:.04em;margin-top:6px}.projects-inner{width:96vw!important}}
.colorland-product-links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:26px 0 30px}.colorland-product-links a{display:flex;min-height:92px;padding:18px;border:1px solid rgba(255,255,255,.24);flex-direction:column;justify-content:space-between;text-decoration:none}.colorland-product-links strong{font-family:Georgia,serif;font-size:20px}.colorland-product-links span{font-size:11px;letter-spacing:.06em;text-transform:uppercase}.colorland-product-links a:hover{background:rgba(255,255,255,.08)}@media(max-width:650px){.colorland-product-links{grid-template-columns:1fr}}
.announcement-toast{left:22px!important;right:auto!important;display:grid;grid-template-columns:56px 1fr;align-items:center;column-gap:12px;width:min(720px,calc(100vw - 44px))!important;padding:12px 48px 12px 20px!important;border-radius:12px!important;background:#fff!important}.announcement-toast[hidden]{display:none!important}.announcement-toast p{font-size:clamp(14px,1.5vw,20px)!important;font-weight:700!important}.announcement-toast a{grid-column:2;margin-top:4px!important}.announcement-icon{grid-row:1/3;width:56px;height:56px;background:#3e4148;display:grid;grid-template-columns:repeat(2,10px);grid-template-rows:repeat(2,10px);gap:4px;place-content:center}.announcement-icon i{display:block;width:10px;height:10px;border-radius:50%}.announcement-icon i:nth-child(1){background:#f20b3b}.announcement-icon i:nth-child(2){background:#f0e51a}.announcement-icon i:nth-child(3){background:#6cc64a}.announcement-icon i:nth-child(4){background:#65a9db}@media(max-width:600px){.announcement-toast{left:15px!important;right:15px!important;bottom:15px!important;width:auto!important;grid-template-columns:44px 1fr}.announcement-icon{width:44px;height:44px}}


/* V0.7 — project types, compact announcement and portrait separation. */
.project-stage{position:relative!important;transition:height .25s ease}
.project-slide{position:absolute!important;inset:0!important;width:100%!important;opacity:0!important;pointer-events:none!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.project-slide.active{opacity:1!important;pointer-events:auto!important}
.project-slide.ng-measure{position:relative!important;inset:auto!important;opacity:0!important;pointer-events:none!important}
.project-composite{width:min(1320px,94vw);margin:0 auto;padding:clamp(8px,1.4vw,20px);background:#f6f4ef;box-sizing:border-box}
.project-composite .photo-lightbox{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in}.project-composite img{display:block;width:100%;height:auto;max-height:62vh;object-fit:contain;margin:auto}
.project-series-grid{width:min(1320px,94vw);margin:0 auto;padding:clamp(8px,1.4vw,20px);background:#f6f4ef;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:clamp(7px,1vw,14px);box-sizing:border-box;align-items:start}
.project-series-grid figure{margin:0;min-width:0}.project-series-grid .photo-lightbox{display:block;width:100%;border:0;padding:0;background:transparent;cursor:zoom-in}.project-series-grid img{display:block;width:100%;height:auto;max-height:360px;object-fit:contain;margin:auto}.project-series-grid figcaption{text-align:center;margin-top:7px;color:#444;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
@media(max-width:650px){.project-series-grid{grid-template-columns:repeat(2,minmax(0,1fr));width:96vw;padding:7px;gap:6px}.project-series-grid img{max-height:220px}.project-composite{width:96vw;padding:7px}.project-composite img{max-height:none}}
.about-image img{outline:1px solid rgba(20,20,20,.72);outline-offset:0}
.announcement-toast{left:18px!important;width:min(470px,calc(100vw - 36px))!important;padding:10px 38px 10px 14px!important;border-radius:9px!important;grid-template-columns:auto 1fr!important;column-gap:10px!important}.announcement-toast p{font-size:14px!important;line-height:1.35!important}.announcement-toast a{font-size:11px!important}.announcement-icon{width:38px!important;height:38px!important;background:transparent!important;display:block!important}.announcement-icon img{display:block;width:100%;height:100%;object-fit:contain}.announcement-toast:not(:has(.announcement-icon)) p,.announcement-toast:not(:has(.announcement-icon)) a{grid-column:1 / -1!important}
@media(max-width:600px){.announcement-toast{left:12px!important;right:12px!important;width:auto!important;padding:9px 36px 9px 12px!important}.announcement-toast p{font-size:13px!important}}

/* V0.8 — storytelling series carousel, HDR-original lightbox and stable project height. */
.projects-showcase{overflow:hidden}
.project-stage{height:auto!important;min-height:0!important}
.project-slide,.project-slide.active,.project-slide.ng-measure{position:absolute!important;inset:0 auto auto 0!important;width:100%!important;opacity:0!important;pointer-events:none!important;display:flex!important;flex-direction:column!important;justify-content:flex-start!important}
.project-slide.active{position:relative!important;inset:auto!important;opacity:1!important;pointer-events:auto!important}
.project-series-carousel{position:relative;width:min(1380px,94vw);margin:0 auto;padding:clamp(12px,1.7vw,24px) clamp(44px,4.2vw,64px);background:#f6f4ef;box-sizing:border-box;overflow:hidden}
.project-series-track{display:flex;align-items:flex-start;gap:clamp(10px,1.25vw,18px);overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;overscroll-behavior-inline:contain}
.project-series-track::-webkit-scrollbar{display:none}
.project-series-track figure{margin:0;flex:0 0 calc((100% - 54px)/4);min-width:0;scroll-snap-align:start}
.project-series-track .photo-lightbox{display:block;width:100%;height:clamp(220px,25vw,350px);padding:0;border:0;background:transparent;cursor:zoom-in}
.project-series-track img{display:block;width:100%;height:100%;object-fit:contain;margin:auto}
.project-series-track figcaption{text-align:center;margin-top:8px;color:#444;font-size:10px;letter-spacing:.08em;text-transform:uppercase;min-height:1.3em}
.series-prev,.series-next{position:absolute;z-index:3;top:50%;transform:translateY(-50%);width:36px;height:54px;border:0;background:rgba(246,244,239,.92);color:#252525;font-size:32px;line-height:1;cursor:pointer}.series-prev{left:7px}.series-next{right:7px}.series-prev:disabled,.series-next:disabled{opacity:.22;cursor:default}
.ng-lightbox-prev,.ng-lightbox-next{position:absolute;z-index:2;top:50%;transform:translateY(-50%);border:0;background:rgba(0,0,0,.18);color:#fff;width:54px;height:72px;font-size:46px;line-height:1;cursor:pointer}.ng-lightbox-prev{left:18px}.ng-lightbox-next{right:18px}.ng-lightbox-count{position:absolute;right:26px;bottom:22px;color:#aaa;font-size:10px;letter-spacing:.12em}.ng-lightbox:not(.has-group) .ng-lightbox-prev,.ng-lightbox:not(.has-group) .ng-lightbox-next,.ng-lightbox:not(.has-group) .ng-lightbox-count{display:none}
@media(max-width:1050px){.project-series-track figure{flex-basis:calc((100% - 36px)/3)}.project-series-track .photo-lightbox{height:300px}}
@media(max-width:760px){.project-series-carousel{width:96vw;padding:10px 42px}.project-series-track figure{flex-basis:calc((100% - 14px)/2)}.project-series-track .photo-lightbox{height:260px}.ng-lightbox-prev,.ng-lightbox-next{width:42px;height:60px;font-size:38px}.ng-lightbox-prev{left:4px}.ng-lightbox-next{right:4px}}
@media(max-width:520px){.project-series-track figure{flex-basis:100%}.project-series-track .photo-lightbox{height:min(68vh,430px)}.project-series-carousel{padding:8px 38px}.project-meta{min-height:0!important}.ng-lightbox{padding:50px 34px}.ng-lightbox img{max-width:100%;max-height:78vh}.ng-lightbox-caption{bottom:16px;max-width:70%;text-align:center}.ng-lightbox-count{bottom:16px;right:12px}}


/* V0.8.1 — clear series covers, thumbnail HDR lightbox, triptych titles. */
.triptych-image-titles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(10px,2vw,28px);margin:12px 1% 0;text-align:center}.triptych-image-titles span{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#4d4943;min-height:1.2em}
.series-cover{width:min(1180px,92vw);margin:0 auto;text-align:center}.series-kicker{margin:0 0 12px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#4b4741}.series-open{border:0;padding:0;background:transparent;cursor:pointer}.series-cover>.series-open:first-of-type{display:block;position:relative;width:100%;overflow:hidden;background:#17191b}.series-cover>.series-open:first-of-type img{display:block;width:100%;height:min(58vh,620px);object-fit:contain;margin:auto;transition:transform .45s ease,opacity .3s ease}.series-cover-overlay{position:absolute;inset:auto 0 0;padding:42px 20px 18px;background:linear-gradient(transparent,rgba(0,0,0,.72));color:#fff;font-size:12px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;opacity:.92}.series-cover>.series-open:first-of-type:hover img{transform:scale(1.012);opacity:.88}.series-open-cta{display:inline-block!important;margin-top:16px!important;padding:12px 19px!important;background:#17191b!important;color:#fff!important;font-size:11px!important;font-weight:700!important;letter-spacing:.12em!important;text-transform:uppercase!important}.series-lightbox-items{display:none!important}
body.ng-lightbox-open{overflow:hidden}.ng-lightbox{padding:18px 28px 14px;flex-direction:column;justify-content:center}.ng-lightbox-main{position:relative;width:100%;height:min(72vh,820px);display:flex;align-items:center;justify-content:center}.ng-lightbox-main>img{max-width:calc(100vw - 130px);max-height:100%;width:auto;height:auto;object-fit:contain}.ng-lightbox-prev,.ng-lightbox-next{top:50%}.ng-lightbox-meta{width:min(1100px,86vw);min-height:28px;display:flex;justify-content:center;align-items:center;position:relative;margin-top:4px}.ng-lightbox-caption,.ng-lightbox-count{position:static}.ng-lightbox-caption{color:#ddd;font-size:11px;letter-spacing:.1em;text-align:center}.ng-lightbox-count{position:absolute;right:0;color:#aaa;font-size:10px;letter-spacing:.12em}.ng-lightbox-thumbs{width:min(1100px,90vw);height:78px;display:flex;gap:8px;overflow-x:auto;overflow-y:hidden;margin-top:10px;padding:4px 2px 7px;scrollbar-width:thin;justify-content:flex-start}.ng-lightbox-thumbs:empty{display:none}.ng-lightbox-thumb{flex:0 0 auto;width:92px;height:62px;border:2px solid transparent;padding:0;background:#222;opacity:.55;cursor:pointer}.ng-lightbox-thumb img{display:block;width:100%;height:100%;object-fit:cover}.ng-lightbox-thumb.active{border-color:#fff;opacity:1}.ng-lightbox-close{z-index:4}.ng-lightbox:not(.has-group) .ng-lightbox-thumbs{display:none}
@media(max-width:760px){.series-cover{width:96vw}.series-cover>.series-open:first-of-type img{height:min(55vh,520px)}.series-cover-overlay{padding:36px 12px 14px;font-size:10px}.ng-lightbox{padding:48px 8px 8px}.ng-lightbox-main{height:calc(100svh - 180px)}.ng-lightbox-main>img{max-width:calc(100vw - 58px);max-height:100%}.ng-lightbox-thumbs{width:96vw;height:66px;gap:6px}.ng-lightbox-thumb{width:76px;height:52px}.ng-lightbox-meta{width:90vw}.triptych-image-titles{gap:6px}.triptych-image-titles span{font-size:8px;letter-spacing:.05em}}

/* V0.8.2 — robust portfolio init, linked Scenic references, moving portrait and reliable section anchors. */
section[id]{scroll-margin-top:86px}.selection-grid.is-preparing{visibility:hidden;min-height:320px}.selection-grid.is-ready{visibility:visible}.scenic-inline-link{font-weight:600;color:#25282a;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em}.scenic-inline-link:hover{text-decoration-thickness:2px}.scenic-title-link{display:inline-block}.scenic-title-link:hover{opacity:.72}.about-portrait-video{display:block;width:100%;max-height:520px;object-fit:contain;outline:1px solid rgba(20,20,20,.72)}.about-media-caption{display:block;margin-top:8px;color:#6a6a68;font-size:10px;letter-spacing:.08em}.ng-file-field{display:flex;gap:8px;align-items:center;flex-wrap:wrap}

/* V0.9 — dynamic Colorland management + discreet About video caption */
.code-group-description{min-height:64px;color:#c8c8c5!important;font-size:12px;line-height:1.55;margin:0 0 14px}
.about-image{position:relative;overflow:hidden}
.about-media-caption{position:absolute;left:18px;bottom:18px;z-index:3;margin:0;padding:7px 10px;background:rgba(15,15,15,.72);color:#fff!important;font-size:10px;line-height:1.2;letter-spacing:.08em;opacity:0;transform:translateY(5px);transition:opacity .2s ease,transform .2s ease;pointer-events:none;white-space:nowrap}
.about-image:hover .about-media-caption,.about-image:focus-within .about-media-caption{opacity:1;transform:none}
@media(hover:none){.about-media-caption{display:none}}


/* V0.9.2 — stable project presentation height across series covers and triptychs. */
.project-stage{position:relative!important;display:block!important;height:var(--ng-project-stage-height,auto)!important;min-height:0!important;transition:height .18s ease!important}
.project-slide,.project-slide.active{position:absolute!important;inset:0 auto auto 0!important;width:100%!important;height:100%!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
.project-slide.ng-measure{position:relative!important;inset:auto!important;height:auto!important;min-height:0!important;justify-content:flex-start!important;opacity:0!important;visibility:hidden!important;pointer-events:none!important}
@media(prefers-reduced-motion:reduce){.project-stage{transition:none!important}}

/* V0.9.3 — calm curated 3 × 3 landscape portfolio grid. */
.selection-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;width:100%!important;visibility:visible!important;min-height:0!important}
.selection-grid.is-preparing,.selection-grid.is-ready{visibility:visible!important;min-height:0!important}
.selection-item{position:relative!important;width:auto!important;margin:0!important;overflow:hidden!important;background:#e8e6e1!important;aspect-ratio:3/2!important}
.selection-item .photo-lightbox{display:block!important;width:100%!important;height:100%!important;overflow:hidden!important}
.selection-item img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important;transition:transform .45s ease,opacity .3s ease!important}
.selection-item figcaption{position:absolute!important;z-index:2!important;left:0!important;right:0!important;bottom:0!important;margin:0!important;padding:34px 15px 12px!important;color:#fff!important;background:linear-gradient(transparent,rgba(0,0,0,.72))!important;opacity:0!important;transform:translateY(4px)!important;transition:opacity .2s ease,transform .2s ease!important;pointer-events:none!important}
.selection-item:hover figcaption,.selection-item:focus-within figcaption{opacity:1!important;transform:none!important}
.selection-item:hover img{transform:scale(1.012)}
@media(max-width:900px){.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}}
@media(max-width:560px){.selection-grid{grid-template-columns:1fr!important;gap:12px!important}.selection-item figcaption{display:none!important}}
@media(hover:none){.selection-item figcaption{display:none!important}}

/* V0.9.4 — definitive portfolio grid; also neutralises legacy row wrappers from cached markup/scripts. */
.selection-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:18px!important;align-items:stretch!important}
.selection-grid>.selection-row{display:contents!important}
.selection-grid .selection-item{width:100%!important;max-width:none!important;min-width:0!important;aspect-ratio:3/2!important;margin:0!important}
.selection-grid .selection-item .photo-lightbox{display:block!important;width:100%!important;height:100%!important}
.selection-grid .selection-item img{display:block!important;width:100%!important;height:100%!important;max-width:none!important;object-fit:cover!important}
@media(max-width:900px){.selection-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){.selection-grid{grid-template-columns:1fr!important}}

/* V0.9.5 — definitive flat portfolio grid */
#fotografie .ng-portfolio-grid{
 display:grid!important; grid-template-columns:repeat(3,minmax(0,1fr))!important;
 gap:18px!important; width:100%!important; height:auto!important;
}
#fotografie .ng-portfolio-grid>.selection-item{
 width:100%!important; height:auto!important; aspect-ratio:3/2!important;
 margin:0!important; position:relative!important; overflow:hidden!important;
}
#fotografie .ng-portfolio-grid>.selection-item>a{display:block!important;width:100%!important;height:100%!important}
#fotografie .ng-portfolio-grid>.selection-item img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important}
@media(max-width:900px){#fotografie .ng-portfolio-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){#fotografie .ng-portfolio-grid{grid-template-columns:1fr!important}}
/* V0.10 — permanent section pages, sharing and social links */
.ng-section-page .site-header{display:none!important}.ng-share-row{max-width:var(--ng-max);margin:0 auto;padding:18px 24px 54px;display:flex;justify-content:flex-end}.ng-share-button{border:1px solid currentColor;background:transparent;padding:9px 14px;cursor:pointer}.ng-social-links{display:flex;flex-wrap:wrap;gap:14px;margin-top:20px}.ng-social-links a{text-decoration:none;border-bottom:1px solid rgba(0,0,0,.25)}.site-footer .ng-social-links{margin:0;justify-content:flex-end}.site-footer .ng-social-links a{color:inherit;border-color:rgba(255,255,255,.25)}

/* V0.10.3 — optional image-copy deterrence; enabled via body class. */
.ng-image-protected img{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}


/* V0.10.4 — polished standalone pages, footer sharing and home wordmark. */
.ng-section-page .ng-section-homebar{padding:30px max(5vw,calc((100vw - 1320px)/2)) 0;font-size:11px;font-weight:700;letter-spacing:.28em;text-transform:uppercase}
.ng-section-page .ng-section-homebar a{color:inherit;text-decoration:none}.ng-section-page .ng-section-homebar a:hover{opacity:.65}
.ng-section-page.ng-section-photography .ng-section-homebar,.ng-section-page.ng-section-books .ng-section-homebar{background:#f7f6f3;color:#17191c}
.ng-section-page.ng-section-projects .ng-section-homebar{background:#c9c3b9;color:#17191c}
.ng-section-page.ng-section-video .ng-section-homebar{background:#111;color:#f5f5f2}
.ng-section-page.ng-section-colorland .ng-section-homebar{background:#202020;color:#f5f5f2}
.ng-section-page.ng-section-about .ng-section-homebar{background:#e7e5df;color:#17191c}
.ng-section-page.ng-section-contact .ng-section-homebar{background:#111416;color:#f5f5f2}
.ng-section-page .section-head h1,.ng-section-page .project-heading h1{font-family:Georgia,serif;font-size:clamp(42px,5vw,70px);font-weight:400;line-height:1;margin:0}
.ng-section-page .colorland-intro h1,.ng-section-page .about-copy h1{font-family:Georgia,serif;font-size:clamp(42px,5vw,72px);font-weight:400;line-height:.98;margin:12px 0 24px}
.ng-section-page .contact-copy h1{font-family:Georgia,serif;font-size:clamp(48px,5.4vw,78px);font-weight:400;line-height:1;margin:12px 0 24px;color:#fff}
.ng-section-page .site-footer{display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;gap:22px!important;padding:28px max(5vw,calc((100vw - 1500px)/2))!important}
.ng-section-page .site-footer .ng-footer-copy{text-align:left}.ng-section-page .site-footer .ng-footer-center{text-align:center}.ng-section-page .site-footer .ng-footer-actions{display:flex;align-items:center;justify-content:flex-end;gap:18px}.ng-section-page .site-footer .ng-social-links{margin:0;justify-content:center}.ng-footer-share{border:1px solid #777;background:transparent;color:inherit;padding:9px 14px;cursor:pointer;font:inherit;letter-spacing:.08em}.ng-footer-share:hover{border-color:#ddd;color:#fff}
@media(max-width:760px){.ng-section-page .site-footer{grid-template-columns:1fr!important;text-align:center!important}.ng-section-page .site-footer .ng-footer-copy,.ng-section-page .site-footer .ng-footer-center{text-align:center}.ng-section-page .site-footer .ng-footer-actions{justify-content:center}.ng-section-page .ng-section-homebar{padding-top:22px}}


/* Netgallery v0.10.5 — footer, social/share icons */
.site-footer{position:relative!important;display:grid!important;grid-template-columns:1fr auto 1fr!important;align-items:center!important;gap:24px!important;padding:24px max(5vw,calc((100vw - 1500px)/2))!important;min-height:72px!important}
.site-footer .ng-footer-copy{grid-column:2!important;text-align:center!important;white-space:nowrap}
.site-footer .ng-footer-center{grid-column:3!important;display:flex!important;justify-content:flex-end!important;align-items:center!important;gap:14px!important}
.site-footer .ng-footer-actions{display:flex!important;align-items:center!important;gap:14px!important}
.ng-social-links{display:flex!important;align-items:center!important;gap:14px!important;margin:0!important}
.ng-social-links a,.ng-footer-share{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:30px!important;height:30px!important;padding:0!important;border:0!important;background:transparent!important;color:inherit!important;opacity:.86;text-decoration:none!important;transition:opacity .2s ease,transform .2s ease!important}
.ng-social-links a:hover,.ng-footer-share:hover{opacity:1!important;transform:translateY(-1px)}
.ng-social-links svg,.ng-footer-share svg{width:19px;height:19px;display:block;fill:currentColor}
.ng-footer-share{cursor:pointer!important}
.ng-footer-separator{width:1px;height:24px;background:rgba(255,255,255,.24);display:inline-block}
.site-footer .cookie-settings,.site-footer .ng-footer-privacy{border:0;background:transparent;color:inherit;padding:0;cursor:pointer;font:inherit;letter-spacing:.08em;text-decoration:none}
.ng-footer-version{font-size:9px!important;letter-spacing:.06em!important;opacity:.42;white-space:nowrap;user-select:none}
@media(max-width:900px){.site-footer{grid-template-columns:1fr!important;text-align:center!important;gap:15px!important;padding-bottom:max(28px,env(safe-area-inset-bottom))!important}.site-footer .ng-footer-copy,.site-footer .ng-footer-center{grid-column:1!important;text-align:center!important;justify-content:center!important;white-space:normal}.site-footer .ng-footer-copy{grid-row:1}.site-footer .ng-footer-center{grid-row:2}.ng-footer-separator{height:20px}}


/* Netgallery v0.10.7 — robust centered copyright kept in normal footer flow. */
@media(min-width:901px){
body.home footer.site-footer,
body.home>footer.site-footer:last-child,
.ng-section-page footer.site-footer,
footer.site-footer{
  position:relative!important;
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr)!important;
  align-items:center!important;
  gap:0!important;
}
footer.site-footer .ng-footer-copy{
  position:static!important;
  grid-column:2!important;
  grid-row:1!important;
  transform:none!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  text-align:center!important;
  justify-self:center!important;
  white-space:nowrap!important;
}
footer.site-footer .ng-footer-center{
  grid-column:3!important;
  grid-row:1!important;
  margin:0!important;
  justify-self:end!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
}
}
@media(max-width:900px){
body.home footer.site-footer,
body.home>footer.site-footer:last-child,
.ng-section-page footer.site-footer,
footer.site-footer{
  display:grid!important;
  grid-template-columns:1fr!important;
  text-align:center!important;
  gap:15px!important;
}
footer.site-footer .ng-footer-copy{
  position:static!important;
  grid-column:1!important;
  grid-row:1!important;
  transform:none!important;
  width:auto!important;
  max-width:none!important;
  margin:0!important;
  text-align:center!important;
  justify-self:center!important;
  white-space:normal!important;
}
footer.site-footer .ng-footer-center{
  grid-column:1!important;
  grid-row:2!important;
  margin:0!important;
  justify-self:center!important;
  justify-content:center!important;
}
}


/* Netgallery v0.10.8 — improve social icon contrast on the light About section. */
.about-copy .ng-social-links a{
  color:#555552!important;
  opacity:1!important;
}
.about-copy .ng-social-links a:hover,
.about-copy .ng-social-links a:focus-visible{
  color:#171717!important;
}

/* V0.11 — HDR information and flexible 2–5 panel composite images */
.ng-hdr-info{margin:32px 0 0;padding:20px 0;border-top:1px solid #d8d5cf;border-bottom:1px solid #d8d5cf;color:#3f4142;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:start}.ng-hdr-info strong{font-family:Georgia,serif;font-size:20px;font-weight:400;color:#17191b}.ng-hdr-info p{max-width:880px;line-height:1.65;margin:8px 0}.ng-hdr-info details{min-width:180px}.ng-hdr-info summary{cursor:pointer;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.ng-hdr-info details[open]{grid-column:1/-1}.ng-hdr-info h3{font-size:13px;margin:16px 0 4px}.ng-hdr-badge{display:inline-block;margin-left:8px;padding:2px 5px;border:1px solid currentColor;border-radius:2px;font-size:8px;line-height:1;letter-spacing:.12em;vertical-align:middle}.ng-hdr-video-note{max-width:760px;color:#a8adb3;font-size:12px;line-height:1.6;margin:-24px 0 34px}.ng-hdr-video-badge{margin:10px 0 0;color:#c8ccd0}.triptych-image-titles{grid-template-columns:repeat(var(--ng-panels,3),minmax(0,1fr))!important}@media(max-width:700px){.ng-hdr-info{grid-template-columns:1fr}.ng-hdr-info details{min-width:0}.triptych-image-titles{gap:4px!important}}
/* V0.11.1 multilingual media metadata */
.selection-item figcaption .ng-photo-title{display:block;font-weight:500}.selection-item figcaption .ng-photo-caption{display:inline-block;margin-top:3px;color:#777;font-size:.9em}.series-lightbox-item{position:relative}.series-lightbox-item>.ng-hdr-badge{position:absolute;right:8px;bottom:8px;color:#fff;background:#0008}.ng-lightbox-caption .ng-hdr-badge{color:inherit}
.ng-lightbox-thumb{position:relative}.ng-hdr-thumb-badge{position:absolute;right:3px;bottom:3px;padding:2px 3px;border:1px solid #fff;border-radius:2px;background:#0009;color:#fff;font-size:6px;line-height:1;letter-spacing:.08em}

/* V0.11.6 — opaque portfolio viewer, clean thumbnail titles and portfolio navigation. */
.ng-lightbox{background:#0a0b0c!important;}
.selection-item figcaption .ng-photo-caption{display:none!important;}
.ng-portfolio-grid .selection-item figcaption{display:flex;align-items:center;gap:8px;}
.ng-portfolio-grid .selection-item figcaption .ng-hdr-badge{flex:0 0 auto;}


/* V0.11.7 — complementary portfolio title/location presentation. */
.ng-lightbox-caption{display:flex;flex-direction:column;align-items:center;gap:3px;line-height:1.35;letter-spacing:0!important;}
.ng-lightbox-title{color:#fff;font-family:Georgia,serif;font-size:17px;font-weight:400;letter-spacing:.01em;}
.ng-lightbox-location{color:#aeb2b6;font-size:10px;letter-spacing:.12em;text-transform:uppercase;}
.ng-lightbox-caption>.ng-hdr-badge{margin:4px 0 0;}
@media(max-width:520px){.ng-lightbox-title{font-size:15px}.ng-lightbox-location{font-size:9px}}


/* V0.11.8 — shared MV identity for Netgallery and ScenicByMarnix. */
.brand{display:flex;align-items:center;gap:13px;text-decoration:none}.brand-mark{display:block;width:31px;height:33px;object-fit:contain;flex:0 0 auto}.brand-wording{display:block}.brand-main,.brand-sub{display:block}.ng-section-homebar a{display:inline-flex;align-items:center;gap:9px}.ng-section-homebar img{width:22px;height:23px;display:block}.ng-section-homebar span{display:inline-block}
@media(max-width:600px){.brand{gap:9px}.brand-mark{width:25px;height:27px}.brand-sub{font-size:6.5px;letter-spacing:.2em}}

/* V0.11.10 — visible MV lockup on homepage; admin newline cleanup */
.welcome-brand-lockup{display:flex;align-items:center;justify-content:center;gap:22px}.welcome-mv-mark{width:42px!important;height:46px!important;object-fit:contain;flex:0 0 auto}.welcome-signature-lockup>img{width:min(360px,55vw)!important;height:auto;margin:0 auto}.welcome-signature-lockup>div{margin-top:-5px;color:#c5c8c9;font-size:10px;letter-spacing:.55em;padding-left:.55em;text-align:center}
@media(max-width:600px){.welcome-brand-lockup{gap:14px}.welcome-mv-mark{width:32px!important;height:35px!important}.welcome-signature-lockup>img{width:min(285px,65vw)!important}.welcome-signature-lockup>div{font-size:8px;letter-spacing:.4em;padding-left:.4em}}

/* V0.11.11 — personal mark moved from homepage masthead to contact signature */
.contact-quote .contact-mv-mark{display:block;width:42px!important;height:46px!important;object-fit:contain;margin:18px auto 0!important;filter:none!important;opacity:.92}
@media(max-width:900px){.contact-quote .contact-mv-mark{margin-left:auto!important;margin-right:auto!important;width:38px!important;height:42px!important}}


/* V0.13.0 — discreet copyright feedback on protected large photographs. */
.ng-copyright-tip{position:fixed;z-index:100500;max-width:min(330px,calc(100vw - 24px));padding:9px 12px;border:1px solid #ffffff24;border-radius:4px;background:#0b0d0ff0;color:#f4f4f1;box-shadow:0 8px 28px #0008;font-size:12px;line-height:1.4;letter-spacing:.015em;pointer-events:none;opacity:0;transform:translateY(-3px);transition:opacity .14s ease,transform .14s ease}
.ng-copyright-tip.show{opacity:1;transform:translateY(0)}

/* V0.13.2 — copyright notice above lightbox; section logo matches lettering. */

/* V0.13.4 — composite panel titles sit inside the white photographic frame. */
.ng-lightbox-panel-titles{position:absolute;z-index:2;display:grid;grid-template-columns:repeat(var(--ng-panels,3),minmax(0,1fr));gap:clamp(8px,1.5vw,22px);margin:0;padding:10px clamp(16px,3vw,42px) 9px;background:#f6f4ef;text-align:center;color:#555;pointer-events:none}
.ng-lightbox-panel-titles[hidden]{display:none!important}.ng-lightbox-panel-titles span{min-width:0;font-size:10px;line-height:1.25;letter-spacing:.09em;text-transform:uppercase}
@media(max-width:760px){.ng-lightbox-panel-titles{gap:5px;padding:7px 10px 6px}.ng-lightbox-panel-titles span{font-size:8px;letter-spacing:.04em}}

/* V0.13.5 — mobile typography and contact monogram alignment. */
.about-copy h2{white-space:pre-line;}
@media(max-width:760px){.about-copy h2{max-width:100%;}}


/* V0.13.7 — responsive composite polish: centred thumbnails and composite title above the lightbox frame. */
.project-composite{width:min(1320px,94vw)!important;max-width:1320px!important;margin-left:auto!important;margin-right:auto!important;box-sizing:border-box!important}
.ng-lightbox-composite-title{display:none;flex:0 0 auto;width:min(1100px,86vw);margin:0 auto 10px;color:#f4f4f1;text-align:center;font-family:Georgia,serif;font-size:clamp(20px,2.2vw,30px);font-weight:400;line-height:1.15}
.ng-lightbox-main.is-composite{flex-direction:column!important;justify-content:center!important}
.ng-lightbox-main.is-composite .ng-lightbox-composite-title{display:block}
@media(max-width:760px){.ng-lightbox-composite-title{width:90vw;margin-bottom:8px;font-size:clamp(18px,5vw,24px)}}


/* V0.13.7 — final mobile responsive refinements for composites, contact mark and About portrait. */
@media(max-width:760px){
  /* Keep composite thumbnails centred within the project stage on narrow screens. */
  .project-slide .project-composite{
    align-self:center!important;
    margin-left:auto!important;
    margin-right:auto!important;
    transform:none!important;
    left:auto!important;
    right:auto!important;
  }
  /* The composite title is shown only above the white frame; add a little breathing room. */
  .ng-lightbox-composite-title{margin-bottom:14px!important;}
  /* Centre the signature and personal monogram together on the narrow contact layout. */
  .contact-quote{
    width:100%!important;
    max-width:none!important;
    justify-self:stretch!important;
    text-align:center!important;
  }
  .contact-quote-rule{margin-left:auto!important;margin-right:auto!important;}
  .contact-quote img{margin-left:auto!important;margin-right:auto!important;}
  .contact-quote .contact-mv-mark{margin-left:auto!important;margin-right:auto!important;}
  /* Avoid the artificial vertical space around the portrait on a phone in portrait orientation. */
  .about-image{min-height:0!important;height:auto!important;}
  .about-image img{display:block!important;margin:0 auto!important;width:min(88vw,520px)!important;height:auto!important;max-height:none!important;}
}
@media(max-width:900px) and (orientation:landscape){
  /* In landscape the portrait section should not let the horizontal self-portrait dominate the text column. */
  .about-image{min-height:0!important;height:auto!important;}
  .about-image img{width:min(58vw,520px)!important;height:auto!important;max-height:62vh!important;}
}


/* V0.13.8 — privacy and cookie information pages: compact editorial layout */
.legal-page{background:#0b0d0f;color:var(--text);min-height:100vh}.legal-hero{padding:92px 5vw 48px;max-width:1180px;margin:0 auto}.legal-brand{display:flex;align-items:center;gap:18px;margin-bottom:42px}.legal-brand-link{display:inline-flex;align-items:center;gap:10px;color:#f4f4f1;text-decoration:none}.legal-brand-link img{width:22px;height:24px;object-fit:contain}.legal-brand-link span{font-size:11px;font-weight:650;letter-spacing:.30em}.legal-home{font-size:10px;letter-spacing:.12em;color:#a8adb3;text-decoration:none;margin-left:8px;transition:color .2s ease}.legal-home:hover{color:#fff}.legal-hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(40px,5vw,68px);line-height:1.02;margin:0;color:#f4f4f1}.legal-content{max-width:980px;padding:0 5vw 90px;margin:0 auto;color:#c9cdd1;line-height:1.68}.legal-content h2{font-family:Georgia,serif;font-weight:400;font-size:clamp(26px,2.8vw,36px);line-height:1.12;color:#f4f4f1;margin:40px 0 12px}.legal-content h3{font-family:Georgia,serif;font-weight:400;font-size:21px;color:#f4f4f1;margin:28px 0 8px}.legal-content p{margin:0 0 14px}.legal-content ul{padding-left:22px;margin:0 0 18px}.legal-content li{margin:5px 0}.legal-content a{text-decoration:underline;text-underline-offset:3px}.legal-table{width:100%;border-collapse:collapse;margin:20px 0 28px;font-size:13px}.legal-table th,.legal-table td{border-bottom:1px solid #30343a;padding:10px 9px;text-align:left;vertical-align:top}.legal-table th{color:#f4f4f1;font-weight:500}.legal-note{color:#a8adb3;font-size:13px}.legal-updated{color:#8e949a;font-size:10px;letter-spacing:.08em;text-transform:uppercase;margin:0 0 22px}
@media(max-width:700px){.legal-hero{padding:74px 6vw 38px}.legal-brand{gap:13px;margin-bottom:32px;flex-wrap:wrap}.legal-brand-link img{width:19px;height:21px}.legal-brand-link span{font-size:10px}.legal-home{width:100%;margin-left:0}.legal-content{padding:0 6vw 65px;line-height:1.65}.legal-content h2{font-size:28px;margin:32px 0 10px}.legal-content h3{font-size:20px;margin:24px 0 7px}.legal-table{display:block;overflow-x:auto;white-space:normal}.legal-table th,.legal-table td{min-width:130px;padding:9px 8px}}



/* V0.13.9 — final visual polish before V1.0 */
/* V0.13.10 — portfolio lightbox: title/location with deliberate breathing room, like the thumbnail hierarchy. */
.ng-lightbox-meta{margin-top:18px!important}
.ng-lightbox-caption{gap:5px!important}
@media(max-width:760px){.ng-lightbox-meta{margin-top:14px!important}.ng-lightbox-caption{gap:4px!important}}

/* Photo books: 4 desktop / 3 tablet and phone landscape / 2 phone portrait. */
.books-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:1100px){.books-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:767px){.books-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:900px) and (orientation:landscape){.books-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:600px) and (orientation:portrait){.books-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* Series/project thumbnails: centre the image inside its actual thumbnail stage. */
/* V0.13.10 — project/series thumbnails: centre both the trigger and the image itself. */
.series-cover>.series-open:first-of-type,
.project-series-track .photo-lightbox,
.project-series-grid .photo-lightbox,
.project-composite .photo-lightbox,
.series-gallery .photo-lightbox{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}
.series-cover>.series-open:first-of-type img,
.project-series-track img,
.project-series-grid img,
.project-composite img,
.series-gallery img{margin-left:auto!important;margin-right:auto!important}
.series-gallery figure,
.project-series-track figure,
.project-series-grid figure{display:flex!important;flex-direction:column!important;align-items:center!important}
.series-gallery .photo-lightbox,
.project-series-track .photo-lightbox,
.project-series-grid .photo-lightbox{align-self:stretch!important}

/* iPhone portrait: cleaner vertical footer hierarchy. Landscape keeps its existing compact layout. */
@media(max-width:600px) and (orientation:portrait){
  .site-footer{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:13px!important;text-align:center!important;padding:28px 5vw max(28px,env(safe-area-inset-bottom))!important}
  .site-footer .ng-footer-copy{order:1!important;width:100%!important;text-align:center!important;white-space:normal!important}
  .site-footer .ng-footer-center{order:2!important;width:100%!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important}
  .site-footer .ng-social-links{order:1!important;justify-content:center!important}
  .site-footer .ng-footer-share{order:2!important}
  .site-footer .ng-footer-separator{display:none!important}
  .site-footer .ng-footer-privacy{order:3!important}
  .site-footer .cookie-settings{order:4!important}
  .site-footer .ng-footer-center .ng-footer-privacy,
  .site-footer .ng-footer-center .cookie-settings{line-height:1.5!important}
  .chapter-welcome .welcome-langs{position:relative!important;top:-8px!important}
}

/* V0.13.10 — iPad/tablet footer. Portrait remains the compact centred layout;
   landscape gets the same intentional centred hierarchy instead of the desktop 3-column footer. */
@media(min-width:701px) and (max-width:1100px){
  .site-footer{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:12px!important;text-align:center!important;padding:28px 5vw max(28px,env(safe-area-inset-bottom))!important}
  .site-footer .ng-footer-copy{width:100%!important;text-align:center!important;white-space:normal!important}
  .site-footer .ng-footer-center{display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:14px!important;width:100%!important}
  .site-footer .ng-footer-separator{height:20px!important}
}
@media(min-width:701px) and (max-width:1400px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  footer.site-footer{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:12px!important;text-align:center!important;padding:28px 5vw max(28px,env(safe-area-inset-bottom))!important}
  footer.site-footer .ng-footer-copy{width:100%!important;text-align:center!important;white-space:normal!important}
  footer.site-footer .ng-footer-center{width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;flex-wrap:wrap!important;gap:14px!important}
}

/* V0.13.16 — final Mac UI pass from V0.13.10 baseline: centred project stages and distinct lightbox layouts. */
.project-slide > .series-cover,
.project-slide > .project-composite{
  align-self:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
  left:auto!important;
  right:auto!important;
}
.project-slide > .series-cover{
  width:min(1180px,calc(100% - 40px))!important;
  max-width:1180px!important;
}
.project-slide > .project-composite{
  width:min(1320px,calc(100% - 40px))!important;
  max-width:1320px!important;
}

/* Project lightbox: title + project description above the enlarged image. */
.ng-lightbox-main.is-composite,
.ng-lightbox-main.is-series{
  flex-direction:column!important;
  justify-content:flex-start!important;
  align-items:center!important;
  height:auto!important;
  max-height:none!important;
  min-height:0!important;
}
.ng-lightbox-composite-title{
  display:none;
  flex:0 0 auto;
  width:min(1000px,86vw);
  margin:0 auto 8px!important;
  color:#f4f4f1;
  text-align:center;
  font-family:Georgia,serif;
  font-size:clamp(24px,2.5vw,34px);
  font-weight:400;
  line-height:1.12;
}
.ng-lightbox-project-description{
  display:none;
  flex:0 0 auto;
  width:min(900px,82vw);
  margin:0 auto 18px!important;
  color:#bfc3c6;
  text-align:center;
  font-size:13px;
  line-height:1.5;
  letter-spacing:.01em;
}
.ng-lightbox-main.is-composite .ng-lightbox-composite-title,
.ng-lightbox-main.is-series .ng-lightbox-composite-title,
.ng-lightbox-main.is-composite .ng-lightbox-project-description,
.ng-lightbox-main.is-series .ng-lightbox-project-description{
  display:block;
}

/* The composite frame contains both the triptych and its individual panel titles. */
.ng-lightbox-composite-frame{display:contents;}
.ng-lightbox-composite-frame.active{
  display:block!important;
  width:min(1100px,86vw);
  max-width:100%;
  box-sizing:border-box;
  padding:18px 22px 12px;
  background:#f6f4ef;
}
.ng-lightbox-main.is-composite .ng-lightbox-composite-frame.active > img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:min(62vh,calc(100vh - 300px));
  margin:0 auto;
  object-fit:contain;
}
.ng-lightbox-main.is-composite .ng-lightbox-panel-titles{
  position:static!important;
  width:100%!important;
  max-width:none!important;
  margin:10px 0 0!important;
  padding:8px 8px 6px!important;
  box-sizing:border-box!important;
  background:#f6f4ef!important;
}

/* A normal series keeps the individual photo title/caption below the photograph. */
.ng-lightbox-main.is-series .ng-lightbox-composite-frame > img{
  display:block;
  width:auto;
  height:auto;
  max-width:calc(100vw - 130px);
  max-height:min(68vh,calc(100vh - 300px));
  margin:0 auto;
  object-fit:contain;
}
.ng-lightbox-main.is-series .ng-lightbox-panel-titles{display:none!important;}
.ng-lightbox-main.is-series + .ng-lightbox-meta{
  margin-top:12px!important;
}

@media(max-width:760px){
  .project-slide > .series-cover{width:calc(100% - 20px)!important;}
  .project-slide > .project-composite{width:calc(100% - 20px)!important;}
  .ng-lightbox-composite-title{width:90vw;font-size:clamp(20px,5vw,28px);margin-bottom:7px!important;}
  .ng-lightbox-project-description{width:88vw;font-size:12px;line-height:1.45;margin-bottom:12px!important;}
  .ng-lightbox-composite-frame.active{width:92vw;padding:10px 10px 8px;}
  .ng-lightbox-main.is-composite .ng-lightbox-composite-frame.active > img{max-height:calc(100vh - 330px);}
  .ng-lightbox-main.is-series .ng-lightbox-composite-frame > img{max-width:calc(100vw - 90px);max-height:calc(100vh - 300px);}
}

/* Keep the established size of ordinary portfolio lightbox photographs after the shared frame wrapper. */
.ng-lightbox-composite-frame > img{
  max-width:calc(100vw - 130px);
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}


/* V0.13.20 — Mac: triptych gets the full available width; series layout untouched. */
@media(min-width:761px){
  .ng-lightbox-main.is-composite .ng-lightbox-composite-title{
    margin-bottom:18px!important;
  }
  .ng-lightbox-main.is-composite .ng-lightbox-project-description{
    margin-bottom:38px!important;
  }
  .ng-lightbox-main.is-composite .ng-lightbox-composite-frame.active{
    width:min(1800px,96vw)!important;
    max-width:none!important;
    padding:18px 22px 12px!important;
  }
  .ng-lightbox-main.is-composite .ng-lightbox-composite-frame.active > img{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    max-height:none!important;
    height:auto!important;
    margin:0 auto!important;
  }
}

/* V0.13.21 — approved iPad landscape footer retained. */
@media(min-width:701px) and (max-width:1400px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  footer.site-footer{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:12px!important;text-align:center!important;padding:28px 5vw max(28px,env(safe-area-inset-bottom))!important}
  footer.site-footer .ng-footer-copy{order:1!important;width:100%!important;text-align:center!important;white-space:normal!important}
  footer.site-footer .ng-footer-center{order:2!important;width:100%!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important}
  footer.site-footer .ng-social-links{order:1!important;justify-content:center!important}
  footer.site-footer .ng-footer-share{order:2!important}
  footer.site-footer .ng-footer-separator{display:none!important}
  footer.site-footer .ng-footer-privacy{order:3!important;line-height:1.5!important}
  footer.site-footer .cookie-settings{order:4!important;line-height:1.5!important}
}

/* V0.13.24 — series lightbox navigation: remove the visible background behind the arrows. */
.ng-lightbox-main.is-series .ng-lightbox-prev,
.ng-lightbox-main.is-series .ng-lightbox-next{
  background:transparent!important;
}

/* V0.13.22 — structural project centring: the project stage must fill its parent content box.
   The previous 94vw width exceeded the 90vw content box created by the section padding,
   causing the project artwork to be offset. Keep one centring mechanism only. */
.projects-inner{width:100%!important;max-width:1500px!important;margin-inline:auto!important}
@media(max-width:600px){.projects-inner{width:100%!important;max-width:none!important}}
/* V0.13.27 — iPhone landscape: final Safari visual-viewport handling for the series lightbox.
   JS measures visualViewport.height and sizes only this lightbox mode accordingly. */
@media (max-width:960px) and (max-height:600px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  .ng-lightbox{
    padding:10px 8px 8px!important;
  }
  .ng-lightbox-main.is-series{
    height:calc(100dvh - 150px)!important;
    min-height:0!important;
    max-height:none!important;
  }
  .ng-lightbox-main.is-series .ng-lightbox-composite-title{
    flex:0 0 auto!important;
  }
  .ng-lightbox-main.is-series .ng-lightbox-project-description{
    flex:0 0 auto!important;
  }
  .ng-lightbox-main.is-series .ng-lightbox-composite-frame > img{
    max-width:calc(100vw - 90px)!important;
    max-height:calc(100dvh - 210px)!important;
  }
  .ng-lightbox-main.is-series + .ng-lightbox-meta{
    flex:0 0 28px!important;
    margin-top:8px!important;
    min-height:28px!important;
  }
  .ng-lightbox-main.is-series ~ .ng-lightbox-thumbs{
    flex:0 0 66px!important;
    height:66px!important;
    margin-top:6px!important;
    padding-bottom:4px!important;
  }
  .ng-lightbox-main.is-series ~ .ng-lightbox-thumbs .ng-lightbox-thumb{
    width:76px!important;
    height:52px!important;
  }

  .about{
    grid-template-columns:minmax(230px,34vw) minmax(0,1fr)!important;
    padding:55px 6vw!important;
    gap:42px!important;
    min-height:0!important;
  }
  .about-image{
    min-height:0!important;
    height:auto!important;
  }
  .about-portrait-video{
    width:100%!important;
    max-width:260px!important;
    max-height:300px!important;
    height:auto!important;
    margin:0 auto!important;
  }
}


/* V0.13.28 — iPhone landscape portfolio lightbox: reserve visible viewport space for photo, metadata and thumbnails. */
@media (max-width:960px) and (max-height:600px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  .ng-lightbox.ng-vv-portfolio{
    height:var(--ng-vv-height)!important;
    max-height:var(--ng-vv-height)!important;
    box-sizing:border-box!important;
  }
  .ng-lightbox.ng-vv-portfolio .ng-lightbox-main{
    height:var(--ng-portfolio-main-height)!important;
    max-height:none!important;
    flex:0 0 var(--ng-portfolio-main-height)!important;
    min-height:0!important;
    overflow:hidden!important;
  }
  .ng-lightbox.ng-vv-portfolio .ng-lightbox-composite-frame > img{
    max-height:var(--ng-portfolio-image-height)!important;
  }
  .ng-lightbox.ng-vv-portfolio .ng-lightbox-meta{
    flex:0 0 28px!important;
    height:28px!important;
    min-height:28px!important;
  }
  .ng-lightbox.ng-vv-portfolio .ng-lightbox-thumbs{
    flex:0 0 66px!important;
    height:66px!important;
  }
}

/* V0.13.27 — visualViewport values are written by site.js; keep this scoped to iPhone landscape. */
@media (max-width:960px) and (max-height:600px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  .ng-lightbox.ng-vv-series{
    height:var(--ng-vv-height)!important;
    max-height:var(--ng-vv-height)!important;
    box-sizing:border-box!important;
  }
  .ng-lightbox.ng-vv-series .ng-lightbox-main.is-series{
    height:var(--ng-series-main-height)!important;
    max-height:none!important;
    flex:0 0 var(--ng-series-main-height)!important;
    overflow:hidden!important;
  }
  .ng-lightbox.ng-vv-series .ng-lightbox-main.is-series .ng-lightbox-composite-frame > img{
    max-height:var(--ng-series-image-height)!important;
  }
  .ng-lightbox.ng-vv-series .ng-lightbox-main.is-series + .ng-lightbox-meta{
    flex:0 0 28px!important;
    height:28px!important;
  }
  .ng-lightbox.ng-vv-series .ng-lightbox-main.is-series ~ .ng-lightbox-thumbs{
    flex:0 0 66px!important;
    height:66px!important;
  }
}
