:root{--red:#ab1c1c;--ink:#222;--muted:#777;--line:#d8d8d8;--paper:#fff;--soft:#f5f5f3;--w:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;background:#ececea;color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55}
a{color:inherit;text-decoration:none}
.page{width:min(var(--w),calc(100% - 32px));margin:28px auto 70px;background:var(--paper);box-shadow:0 1px 8px rgba(0,0,0,.07)}
.header{height:76px;border-bottom:1px solid var(--line);position:relative;display:flex;align-items:center;justify-content:flex-end;padding:0 42px}
.logo{position:absolute;left:42px;top:4px;height:96px;width:auto;z-index:3}.logo img{height:100%;width:auto;display:block}
.nav{display:flex;gap:32px;font-size:14px;align-items:center}.nav a{padding:27px 0 25px;border-bottom:2px solid transparent}.nav a:hover,.nav a.active{color:var(--red);border-color:var(--red)}
.site-main{min-height:400px}.site-main>h1,.site-main>h2,.site-main>p,.listing-head{margin-left:48px;margin-right:48px}
.project-head{display:grid;grid-template-columns:1.35fr .65fr;min-height:330px;border-bottom:1px solid var(--line)}
.project-main{padding:64px 48px 42px}.kicker{color:var(--red);font-size:12px;font-weight:bold;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}
h1{margin:0 0 18px;font-size:38px;line-height:1.15;font-weight:500}h2{margin:0 0 24px;font-size:25px;line-height:1.25;font-weight:500}h3{font-weight:500}
.intro{max-width:700px;margin:0 0 28px;color:#555;font-size:17px}.intro p{margin:0 0 10px}
.project-overview{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(250px,.9fr);border-top:1px solid var(--line);max-width:760px}.project-lead-image{margin:0;padding:20px 26px 0 0}.project-lead-image img{display:block;width:100%;max-height:250px;object-fit:contain}.project-lead-image figcaption{margin-top:10px;color:var(--muted);font-size:12px}.specs{max-width:680px}.project-specs{padding:20px 0 0 26px;border-left:1px solid var(--line);font-size:14px}.project-specs h1{display:none}.project-specs p{margin:0;color:#555}.project-specs strong{color:var(--ink)}
.project-side{border-left:1px solid var(--line);padding:64px 34px 34px;background:#fafafa}.side-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}.side-link{display:block;border-top:1px solid var(--line);padding:12px 0}.side-link:last-of-type{border-bottom:1px solid var(--line)}.side-link:hover,.more:hover{color:var(--red)}.download{margin-top:28px;display:block;background:var(--red);color:#fff;padding:13px 16px;text-align:center;font-size:13px;text-transform:uppercase;letter-spacing:.04em}
.section{display:grid;grid-template-columns:190px 1fr;border-bottom:1px solid var(--line)}.section-index{padding:42px 26px 42px 48px;color:var(--red);font-size:12px;text-transform:uppercase;letter-spacing:.07em;border-right:1px solid var(--line)}.section-body{padding:38px 48px 48px}
.visual{position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:26px 0 20px;text-align:center;margin:0}.visual img{display:block;width:100%;max-height:560px;object-fit:contain}.caption{display:flex;justify-content:space-between;gap:20px;margin-top:14px;color:var(--muted);font-size:12px;text-align:left}.note{margin-top:24px;max-width:760px}
.project-description{max-width:760px;margin:0 0 28px;color:#555;font-size:16px}.project-description p{margin:0 0 12px}
.project-content{font-size:16px}.project-content img{max-width:100%;height:auto}.project-content a{color:var(--red);text-decoration:underline}.project-content h1{font-size:28px}.project-content h2{font-size:23px;color:var(--red)}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.cell{min-height:150px;padding:20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.cell-num{color:var(--red);font-size:12px;margin-bottom:18px}.cell h3{font-size:16px;margin:0 0 8px}.cell p{margin:0;color:#666;font-size:14px}.project-links a:hover{background-color:var(--soft)}.material-card{position:relative;overflow:hidden;background-repeat:no-repeat;background-position:right bottom;background-size:132px 132px}.material-card>*{position:relative;z-index:1}.material-pdf{background-image:url('../img/material-pdf.svg')}.material-web{background-image:url('../img/material-web.svg')}.material-3d{background-image:url('../img/material-3d.svg')}
.listing-head{padding:52px 0 28px;border-bottom:1px solid var(--line)}.listing-head .intro{margin-bottom:0}.project-cards{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin:0 48px 48px}.project-card{border-right:1px solid var(--line);border-bottom:1px solid var(--line);transition:background .15s}.project-card:hover{background:var(--soft)}.project-card img{width:100%;height:190px;object-fit:cover;display:block}.project-card-body{padding:20px}.project-card h2{font-size:19px;margin:0 0 10px}.project-card-body p{margin:0;color:#666}
.gallery-album-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line);margin:0 48px 48px}.gallery-album-card{min-height:170px;padding:24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(135deg,#fff 0%,#fafafa 100%)}.gallery-album-card:hover{background:var(--soft);color:var(--red)}.gallery-card-mark{color:var(--red);font-size:11px;letter-spacing:.1em;margin-bottom:30px}.gallery-album-card h2{font-size:20px;margin:0 0 10px}.gallery-album-card p{color:var(--muted);margin:0 0 16px}.gallery-album-card span,.gallery-back{color:var(--red);font-size:13px}.gallery-heading .gallery-back,.image-heading .gallery-back{display:inline-block;margin-top:4px}.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);margin:0 48px 48px;border:1px solid var(--line)}.gallery-item{display:block;background:var(--paper);padding:10px;transition:background .15s}.gallery-item:hover{background:var(--soft)}.gallery-item img{display:block;width:100%;height:180px;object-fit:cover;background:#f0f0ee}.gallery-item span{display:block;padding:10px 2px 4px;font-size:13px;line-height:1.35}.image-detail{padding:38px 48px 48px;text-align:center}.image-detail img{max-width:100%;max-height:78vh;height:auto;object-fit:contain}
.site-home{padding:48px}.site-home .homepage_widget,.site-home .news_out{margin-bottom:40px}.site-home img{max-width:100%}.footer{padding:22px 48px;border-top:1px solid var(--line);color:#888;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:20px}.nav-footer{gap:18px;font-size:12px}.nav-footer a{padding:0;border:0}
@media(max-width:800px){body{background:#fff}.page{width:100%;margin:0;box-shadow:none}.header{padding:0 20px;height:70px}.logo{left:20px;height:74px;top:9px}.nav{gap:14px;font-size:12px}.nav a{padding:24px 0 22px}.project-head{grid-template-columns:1fr}.project-main{padding:58px 22px 32px}.project-overview{display:flex;flex-direction:column}.project-lead-image{order:1;padding:20px 0 0}.project-specs{order:2;padding:20px 0 0;border-left:0;border-top:1px solid var(--line)}.project-side{border-left:0;border-top:1px solid var(--line);padding:28px 22px}.section{grid-template-columns:1fr}.section-index{padding:24px 22px 8px;border-right:0}.section-body{padding:12px 22px 34px}.grid3,.project-cards{grid-template-columns:1fr}.project-cards{margin:0 22px 34px}.listing-head{margin:0;padding:38px 22px 24px}.site-main>h1,.site-main>h2,.site-main>p{margin-left:22px;margin-right:22px}.site-home{padding:30px 22px}.footer{padding:24px 22px;align-items:flex-start;flex-direction:column}.footer .nav{flex-wrap:wrap}}
@media(max-width:800px){.gallery-album-grid{grid-template-columns:1fr;margin:0 22px 34px}.gallery-grid{grid-template-columns:repeat(2,1fr);margin:0 22px 34px}.gallery-item img{height:150px}.image-detail{padding:24px 22px 34px}}
@media(max-width:800px){.project-gallery{padding:18px 0 16px;margin-bottom:30px}.project-gallery .single_2 h2{font-size:18px;margin-bottom:12px}.project-gallery .single_2 img{max-height:360px}.project-gallery .gallery-description{margin:14px 42px 0;font-size:14px}.project-gallery .prev,.project-gallery .next{width:32px;height:32px}}
@media(max-width:800px){.gallery-preview-grid{grid-template-columns:1fr}.gallery-preview img{height:220px}.project-gallery-plan .prev,.project-gallery-plan .next{width:42px;height:42px}}
.gallery-grid{gap:28px;background:transparent;border:0}.gallery-item{background:transparent;padding:0}.gallery-item:hover{background:transparent;opacity:.8}.gallery-item img{background:transparent;object-fit:contain}
.project-gallery .prev,.project-gallery .next{display:flex;align-items:center;justify-content:center;border:1px solid var(--red);border-radius:50%;background:var(--paper);background-image:none;transform:none;transition:background-color .15s ease}.project-gallery .prev::before,.project-gallery .next::before{content:"";display:block;width:11px;height:11px;border-top:2px solid var(--red);border-right:2px solid var(--red)}.project-gallery .prev::before{transform:rotate(-135deg);margin-left:5px}.project-gallery .next::before{transform:rotate(45deg);margin-right:5px}.project-gallery .prev:hover,.project-gallery .next:hover{background:var(--red)}.project-gallery .prev:hover::before,.project-gallery .next:hover::before{border-color:#fff}
.project-gallery .prev,.project-gallery .next{font-size:0;background:var(--paper);transform:none}.project-gallery .prev::before,.project-gallery .next::before{width:auto;height:auto;border:0;color:var(--red);font-size:28px;font-family:Arial,sans-serif;line-height:1}.project-gallery .prev::before{content:"←";transform:none;margin:0}.project-gallery .next::before{content:"→";transform:none;margin:0}.project-gallery .prev:hover,.project-gallery .next:hover{background:var(--red)}.project-gallery .prev:hover::before,.project-gallery .next:hover::before{color:#fff}
.project-gallery .prev,.project-gallery .next{font-size:0!important;background:#ededed!important;border:0!important;transform:none!important}.project-gallery .prev::before,.project-gallery .next::before{content:none!important;display:none!important}.project-gallery .prev span,.project-gallery .next span{display:block;width:11px;height:11px;border:solid var(--red);border-width:0 0 2px 2px}.project-gallery .prev span{transform:rotate(45deg);margin-left:4px}.project-gallery .next span{border-width:0 2px 2px 0;transform:rotate(-45deg);margin-right:4px}.project-gallery .prev:hover,.project-gallery .next:hover{background:var(--red)!important;border:0!important}.project-gallery .prev:hover span,.project-gallery .next:hover span{border-color:#fff}
.project-gallery .prev[style*="display:none"]{display:none!important}
.image-detail h2{font-size:20px;margin:20px 0 10px}.image-description{max-width:760px;margin:0 auto;text-align:left;color:#555}
.project-galleries{max-width:970px}.project-gallery{margin:0 0 42px;overflow:hidden;border-top:1px solid var(--line);padding:24px 0 20px}.project-gallery .big-image{position:relative}.project-gallery .slide{display:none}.project-gallery .slide.active{display:block}.project-gallery .single_2{position:relative;text-align:center}.project-gallery .single_2 h2{font-size:20px;margin:0 0 18px;text-align:left}.project-gallery .single_2 img{display:block;width:auto;max-width:100%;max-height:500px;height:auto;margin:0 auto;object-fit:contain}.project-gallery .gallery-description{min-height:40px;margin:18px 60px 0;color:#555}.project-gallery .prev,.project-gallery .next{position:absolute;top:50%;z-index:2;width:40px;height:40px;margin-top:-20px;border:0;background-color:rgba(255,255,255,.92);cursor:pointer}.project-gallery .prev{left:0;background:linear-gradient(45deg,transparent 45%,var(--red) 46%,var(--red) 54%,transparent 55%),linear-gradient(-45deg,transparent 45%,var(--red) 46%,var(--red) 54%,transparent 55%);background-size:10px 10px;background-position:13px 10px,13px 20px;background-repeat:no-repeat}.project-gallery .next{right:0;background:linear-gradient(45deg,transparent 45%,var(--red) 46%,var(--red) 54%,transparent 55%),linear-gradient(-45deg,transparent 45%,var(--red) 46%,var(--red) 54%,transparent 55%);background-size:10px 10px;background-position:17px 10px,17px 20px;background-repeat:no-repeat;transform:rotate(180deg)}.project-gallery .gallery-open{display:inline-block;margin-top:18px;color:var(--red);font-size:13px}.project-gallery .gallery-open:hover{text-decoration:underline}
.gallery-preview-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;margin-bottom:30px}.gallery-preview{display:block;background:transparent;padding:0}.gallery-preview:hover{background:transparent}.gallery-preview img{display:block;width:100%;height:245px;object-fit:contain;background:transparent}.gallery-preview span{display:block;padding:10px 2px 3px;color:#555;font-size:13px;line-height:1.35}.plan-gallery-title{margin:6px 0 16px;color:var(--muted);font-size:16px;font-weight:500}.project-gallery-plan{margin-bottom:36px}.project-gallery-plan .prev,.project-gallery-plan .next{width:52px;height:52px;background-color:rgba(255,255,255,.96)}
#gallery-plans .project-gallery-plan:first-child{border-top:0;padding-top:0}

/* Plain legacy pages and articles must clear the logo and keep readable edges. */
.type-articles #titleExt,.type-articles>h1,.type-articles #detail,.type-page>h1,.type-page #detail{margin-left:48px;margin-right:48px}
.type-articles #titleExt{padding-top:38px;margin-bottom:10px}.type-articles #titleExt h5{margin:0;color:var(--muted);font-size:13px;font-weight:400}
.type-articles>h1,.type-page>h1{padding-top:38px}.type-articles #titleExt+h1{padding-top:0}
.type-articles #detail,.type-page #detail{max-width:860px;margin-top:24px;margin-bottom:48px}
.type-articles #detail p,.type-page #detail p{margin:0 0 18px}.type-articles #detail img,.type-page #detail img{max-width:100%;height:auto}
.type-articles #detail a,.type-page #detail a{color:var(--red);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px}.type-articles #detail a:hover,.type-page #detail a:hover{color:#741313}
@media(max-width:800px){.type-articles #titleExt,.type-articles>h1,.type-articles #detail,.type-page>h1,.type-page #detail{margin-left:22px;margin-right:22px}.type-articles #titleExt,.type-articles>h1,.type-page>h1{padding-top:30px}.type-articles #titleExt+h1{padding-top:0}.type-articles #detail,.type-page #detail{margin-top:20px;margin-bottom:34px}}

.article-list{margin:0 48px 48px;border-top:1px solid var(--line)}.article-card{display:block;padding:25px 0;border-bottom:1px solid var(--line);transition:background .15s}.article-card:hover{background:var(--soft)}.article-card h2{margin:0 0 12px;font-size:22px}.article-card p{max-width:760px;margin:0;color:#666}.article-card-link{display:inline-block;padding-top:14px;color:var(--red);font-size:13px}.article-empty{margin:38px 48px 48px}.article-listing-head .intro{max-width:720px}
@media(max-width:800px){.article-list{margin:0 22px 34px}.article-card{padding:22px 0}.article-card h2{font-size:20px}.article-empty{margin:28px 22px 34px}}

/* Video archive retains the same reading width as articles. */
.type-video>h1{margin-left:48px;margin-right:48px;padding-top:38px}.type-video .b_video{max-width:760px;margin:0 48px 46px}.type-video .b_video:first-child{padding-top:38px}.type-video .b_video h3{margin:0 0 8px;font-size:22px;line-height:1.25;font-weight:500}.type-video .b_video p{margin:0 0 14px;color:#555}.type-video .b_video iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0}
@media(max-width:800px){.type-video>h1{margin-left:22px;margin-right:22px;padding-top:30px}.type-video .b_video{margin:0 22px 34px}.type-video .b_video:first-child{padding-top:30px}.type-video .b_video h3{font-size:19px}}

.news-feed{max-width:860px;margin:0 48px 54px}.news-entry{padding:30px 0 32px;border-bottom:1px solid var(--line)}.news-entry time{display:block;margin-bottom:8px;color:var(--red);font-size:12px;font-weight:700;letter-spacing:.07em}.news-entry h2{margin:0 0 14px;font-size:24px}.news-entry p{margin:0 0 14px;color:#555}.news-entry a{color:var(--red);text-decoration:underline;text-underline-offset:2px}.news-entry a:hover{color:#741313}
@media(max-width:800px){.news-feed{margin:0 22px 36px}.news-entry{padding:24px 0 26px}.news-entry h2{font-size:20px}}

.site-home{padding:0}.home-hero{padding:68px 48px 62px;border-bottom:1px solid var(--line);max-width:920px}.home-hero h1{max-width:760px;font-size:44px}.home-hero .intro{max-width:620px}.home-action{display:inline-block;background:var(--red);color:#fff;padding:13px 17px;font-size:13px;letter-spacing:.04em;text-transform:uppercase}.home-action:hover{background:#741313}.home-news,.home-story{max-width:860px;margin:0 48px}.home-news{padding:42px 0 0}.home-story{padding:52px 0 58px}.home-section-head{display:flex;align-items:baseline;gap:18px;border-bottom:1px solid var(--line);padding-bottom:16px}.home-section-head .kicker{margin:0}.home-section-head h2{margin:0;flex:1}.home-section-head>a{color:var(--red);font-size:13px}.home-news-list .news-entry{padding:24px 0}.home-story-text{max-width:820px;color:#555;font-size:16px}.home-story-text p{margin:0 0 18px}.home-story-text p:has(strong:only-child){margin-top:38px;color:var(--ink);font-size:21px}.home-story-text a{color:var(--red);text-decoration:underline;text-underline-offset:2px}
.home-section-body{max-width:860px}.home-section-body>h2{margin-bottom:4px}.home-news-list .news-entry:first-child{padding-top:20px}.home-more{display:inline-block;margin-top:4px;color:var(--red);font-size:13px}.home-more:hover{text-decoration:underline}
@media(max-width:800px){.home-hero{padding:46px 22px 42px}.home-hero h1{font-size:32px}.home-news,.home-story{margin:0 22px}.home-news{padding-top:30px}.home-story{padding:38px 0}.home-section-head{gap:10px;flex-wrap:wrap}.home-section-head h2{font-size:22px}.home-section-head>a{margin-left:auto}}
