:root{--bg:#0b1010;--bg2:#111919;--bg3:#182321;--ink:#f3f1eb;--muted:#a7b4b0;--quiet:#72827c;--accent:#cee2c6;--line:rgba(230,245,235,.15);--line2:rgba(230,245,235,.25);--font:system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI','PingFang SC','Noto Sans CJK SC','Microsoft YaHei',sans-serif;--serif:Georgia,'Times New Roman','Noto Serif SC',serif;--max:1440px}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:auto;scroll-padding-top:84px}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:15px;min-width:320px;animation:pageEnter .55s both}body.is-leaving{opacity:0;transform:translateY(-8px);transition:opacity .23s,transform .23s}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}h1,h2,h3,p,figure{margin:0}::selection{background:#c7dfb7;color:#102019}*:focus-visible{outline:2px solid var(--accent);outline-offset:4px}body::after{content:"";pointer-events:none;position:fixed;inset:0;z-index:100;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.66' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");opacity:.15;mix-blend-mode:screen}body.lightbox-open{overflow:hidden}.shell{width:min(calc(100% - 10vw),var(--max));margin-inline:auto}.serif{font-family:var(--serif);font-weight:400;font-style:italic}.muted{color:var(--muted)}.eyebrow{font-size:11px;line-height:1.6;letter-spacing:.27em;font-weight:650;color:#bdcfc4;text-transform:uppercase}.rule{height:1px;background:var(--line);width:100%}.icon{display:inline-block;font-size:1.3em;line-height:1;vertical-align:-.03em}.chip{display:inline-flex;align-items:center;min-height:30px;padding:7px 11px;border-radius:30px;border:1px solid var(--line2);font-size:11px;letter-spacing:.04em;color:#d9e1d9}.demo-pill{display:inline-flex;border:1px solid #d4b27d94;background:#8c60213b;color:#e7cda0;border-radius:30px;padding:5px 10px;font-size:11px;letter-spacing:.06em}.btn-link{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;border-bottom:1px solid currentColor;padding:10px 0;font-size:12px;letter-spacing:.16em;font-weight:670;transition:gap .25s,color .25s}.btn-link:hover{gap:44px;color:var(--accent)}.btn-outline{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;padding:17px 20px;border:1px solid #bed1c880;border-radius:2px;font-size:12px;letter-spacing:.12em;font-weight:600;transition:background .25s,border-color .25s,transform .25s}.btn-outline:hover{background:#e0e7d91a;border-color:#c7d9cf;transform:translateY(-2px)}.arrow{font:normal 20px/1 var(--font)}
/* global navigation */
.site-header{position:fixed;top:0;left:0;right:0;z-index:50;height:85px;border-bottom:1px solid transparent;transition:background .3s,border .3s}.site-header.scrolled,.site-header.solid{background:rgba(8,16,15,.92);backdrop-filter:blur(16px);border-color:var(--line)}.nav-container{height:100%;display:flex;justify-content:space-between;align-items:center;gap:28px}.brand{display:flex;align-items:center;gap:15px;white-space:nowrap}.brand-mark{font:italic 36px/.9 var(--serif);letter-spacing:-.11em;color:#eaf1df}.brand-text{font-size:12px;font-weight:650;letter-spacing:.22em}.nav-links{display:flex;align-items:center;gap:clamp(16px,2.6vw,42px)}.nav-links a{font-size:11px;letter-spacing:.15em;font-weight:600;color:#d6dfd8;transition:color .2s}.nav-links a:hover,.nav-links a.active{color:#f3fff0}.nav-links a.active:after{content:"";display:block;height:1px;background:#d9ecd5;margin-top:6px}.nav-toggle{display:none;border:1px solid var(--line2);background:#081210aa;color:white;font-size:20px;border-radius:3px;width:40px;height:39px}.mobile-menu{display:none}
/* first screen */
.hero-opening{min-height:100svh;min-height:100vh;position:relative;display:flex;align-items:center;isolation:isolate;overflow:hidden}.image-fill{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.71) brightness(.63);transform:scale(1.025)}.hero-opening::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(95deg,#060d0be3 2%,#07131186 48%,#03080652),linear-gradient(0deg,#030909d8,transparent 39%,#04090960)}.hero-contents{padding-top:76px;padding-bottom:100px}.hero-kicker{margin:0 0 28px}.hero-title{font-size:clamp(54px,7.8vw,132px);font-weight:400;letter-spacing:-.075em;line-height:1.18;text-shadow:0 10px 60px #0005}.hero-title span{display:block}.hero-title em{font-style:normal;color:#d2e7cc}.hero-sub{font:italic clamp(17px,2.1vw,28px)/1.5 var(--serif);letter-spacing:.015em;color:#d4dfd4;margin:31px 0 20px}.hero-description{max-width:485px;line-height:2.15;font-size:13px;color:#ccd5cb}.hero-actions{margin-top:43px;display:flex;gap:25px;align-items:center}.hero-bottom{position:absolute;bottom:30px;left:0;right:0;display:flex;align-items:end;justify-content:space-between;color:#d6e2d8;font-size:10px;letter-spacing:.2em}.scroll-sign{display:flex;align-items:center;gap:16px}.scroll-line{width:1px;height:52px;background:#e9eee48a;position:relative}.scroll-line::after{content:"";position:absolute;bottom:0;left:0;height:18px;width:1px;background:#effff1;animation:scrollPulse 2.1s infinite}.hero-index{writing-mode:vertical-rl;letter-spacing:.22em}
/* second layer */
.explore-start{padding:112px 0 49px;scroll-margin-top:0}.intro-heading{display:grid;grid-template-columns:.8fr 1.2fr;gap:50px;align-items:start}.intro-heading h2{font:400 clamp(37px,4.8vw,75px)/1.26 var(--serif);letter-spacing:.01em;margin-top:18px}.intro-heading p{font-size:14px;line-height:2.2;color:#b7c6bc;max-width:630px;margin:45px 0 20px}.section-cap{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:37px}.section-cap .section-number{font:italic 38px var(--serif);color:#adc3b2}.intro-card{margin-top:51px;display:grid;grid-template-columns:1.15fr .85fr;gap:0;min-height:420px;border:1px solid var(--line);background:linear-gradient(130deg,#141f1d,#1c2a27);overflow:hidden}.intro-card-text{padding:clamp(25px,5vw,77px);display:flex;flex-direction:column;justify-content:center;gap:22px}.intro-card-text h3{font-size:clamp(30px,3.5vw,52px);font-weight:480;letter-spacing:-.06em;line-height:1.35}.intro-card-text p{font-size:14px;line-height:2.1;color:#b9c6bd}.intro-card-media{min-height:300px;position:relative;overflow:hidden}.intro-card-media img{width:100%;height:100%;object-fit:cover;filter:brightness(.81) saturate(.74)}.intro-card-media:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#17252177,transparent 30%)}.intro-card-media .portrait-note{position:absolute;bottom:17px;right:19px;z-index:2;font-size:10px;letter-spacing:.2em;background:#050e0e9e;padding:12px;color:#d2dfd2}.module-stack{padding:43px 0 96px;display:grid;gap:32px}.module{position:relative;min-height:490px;display:flex;align-items:center;overflow:hidden;border:1px solid var(--line);isolation:isolate}.module img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.68) brightness(.58);transition:transform 1s ease,filter .5s}.module::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#04100ded 2%,#04110dc4 37%,#03090722 100%)}.module:hover img{transform:scale(1.05);filter:saturate(.75) brightness(.66)}.module-content{padding:clamp(32px,6vw,92px);max-width:760px}.module-num{font:italic 33px var(--serif);color:#d9ead7;margin:0 0 26px}.module h3{font-size:clamp(40px,5.5vw,75px);font-weight:400;line-height:1.14;letter-spacing:-.055em;margin:16px 0 25px}.module h3 em{font:italic clamp(20px,2.4vw,33px) var(--serif);letter-spacing:.02em;color:#d1e2d0;display:block;margin-top:14px}.module p{max-width:460px;font-size:14px;color:#c9d5ca;line-height:2;margin-bottom:29px}.module-video{min-height:510px}.module-photo{min-height:490px}.module-guide{min-height:510px}.module .module-next{display:flex;align-items:center;gap:18px;letter-spacing:.16em;font-size:12px;font-weight:700}.module .module-next .circle-arrow{width:39px;height:39px;border:1px solid #d4e3d08c;border-radius:50%;display:grid;place-items:center;font-size:17px;transition:transform .2s}.module:hover .circle-arrow{transform:translateX(6px)}.module-corner{position:absolute;bottom:25px;right:30px;letter-spacing:.2em;font-size:10px;color:#ccd6ce;opacity:.85}
/* catalog third layer */
.page-cover{position:relative;min-height:500px;padding-top:85px;display:flex;align-items:center;isolation:isolate;overflow:hidden}.page-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#081111ed,#0915139c 53%,#06110b73),linear-gradient(0deg,#0b1010 0%,transparent 50%);z-index:-1}.page-cover .image-fill{filter:saturate(.68) brightness(.58)}.page-cover .shell{padding:95px 0 87px}.backline{font-size:11px;letter-spacing:.1em;color:#c2d0c5;display:inline-flex;align-items:center;gap:14px;margin-bottom:34px}.backline:hover{color:white}.cover-title{font:400 clamp(54px,7vw,102px)/1.18 var(--serif);letter-spacing:-.03em;margin:18px 0 20px}.cover-desc{max-width:600px;color:#d0dbd2;line-height:2;font-size:14px}.catalog{padding:77px 0 130px}.catalog-top{display:flex;justify-content:space-between;align-items:end;gap:25px;margin-bottom:31px}.catalog-top h2{font-size:24px;letter-spacing:-.03em;font-weight:520}.catalog-count{color:#a3b4a7;font-size:12px;letter-spacing:.12em}.filter-box{padding:25px;border:1px solid var(--line);background:#101816;margin-bottom:24px}.filter-row{display:grid;grid-template-columns:1.6fr 1fr 1fr .75fr 1fr;gap:13px}.filter-field{display:flex;flex-direction:column;gap:9px}.filter-field label{color:#a5b5aa;font-size:10px;letter-spacing:.13em}.filter-field input,.filter-field select{width:100%;min-height:49px;padding:0 14px;color:#e7efe7;background:#1b2823;border:1px solid #33443a;border-radius:2px;outline:none}.filter-field input::placeholder{color:#8da096}.filter-field input:focus,.filter-field select:focus{border-color:#c4dac4}.filter-field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m7 10 5 5 5-5' fill='none' stroke='%23d6e8d3' stroke-width='1.6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px;padding-right:37px}.filter-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.topic-pills{display:flex;flex-wrap:wrap;gap:8px}.topic-pill{background:transparent;border:1px solid #304139;color:#b3c5b9;border-radius:30px;padding:8px 13px;font-size:11px}.topic-pill.active,.topic-pill:hover{background:#cde0c5;color:#0c1913;border-color:transparent}.reset-button{border:0;background:transparent;color:#b8c5b9;font-size:11px;letter-spacing:.1em;padding:7px 4px}.reset-button:hover{text-decoration:underline}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px 22px}.work-item{min-width:0;transition:opacity .2s}.work-item[hidden]{display:none}.card-cover{display:block;aspect-ratio:1.33;overflow:hidden;position:relative;background:#23332b}.card-cover img{height:100%;width:100%;object-fit:cover;filter:saturate(.78) brightness(.86);transition:transform .55s,filter .55s}.work-item:hover img{transform:scale(1.055);filter:saturate(.9)}.card-cover .card-arrow{position:absolute;right:17px;bottom:17px;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:#15201da6;border:1px solid #d5ead0b8;font-size:18px;transition:transform .2s}.work-item:hover .card-arrow{transform:translate(2px,-3px)}.card-label{position:absolute;top:16px;left:16px;letter-spacing:.11em;background:#0b1613c7;border:1px solid #ffffff38;padding:7px 10px;font-size:9px}.card-meta{display:flex;justify-content:space-between;gap:15px;font-size:11px;letter-spacing:.065em;color:#8fa497;margin-top:18px;margin-bottom:13px}.card-title{font-size:21px;line-height:1.45;letter-spacing:-.038em;font-weight:500;margin-bottom:13px}.card-summary{font-size:12px;line-height:1.9;color:#a9b8ae}.empty-state{display:none;padding:80px 25px;text-align:center;border:1px dashed #405548;color:#9bac9f}.empty-state.visible{display:block}
/* details fourth layer */
.detail-top{position:relative;min-height:610px;display:flex;align-items:end;isolation:isolate;overflow:hidden}.detail-top:before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(0deg,#0b1010 3%,#08120f4b 56%,#03100baa),linear-gradient(90deg,#06110dbf,transparent)}.detail-top .image-fill{filter:saturate(.73) brightness(.55)}.detail-head{padding-top:145px;padding-bottom:65px}.detail-head h1{font-size:clamp(43px,6.5vw,92px);line-height:1.22;letter-spacing:-.06em;font-weight:500;max-width:1100px;margin:23px 0}.detail-head .detail-summary{font-size:15px;line-height:2;max-width:680px;color:#c9d7cb}.detail-meta{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:26px 0 0}.detail-main{padding:57px 0 95px}.detail-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:30px;margin-bottom:50px}.detail-toolbar .tag-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.detail-toolbar .prev{font-size:12px;color:#bbd0bd}.detail-toolbar .prev:hover{color:white}.detail-copy{line-height:2.05;color:#c7d5cb;font-size:15px}.detail-copy p{margin:0 0 22px}.detail-copy h2{font-size:clamp(27px,3vw,40px);color:#f1f5ec;line-height:1.4;font-weight:560;letter-spacing:-.025em;margin:52px 0 22px;padding-top:20px;border-top:1px solid #34463a}.detail-copy h3{font-size:22px;font-weight:540;margin:30px 0 16px;color:#e2eddf}.detail-copy ul,.detail-copy ol{padding-left:23px}.detail-copy blockquote{border-left:2px solid #c0d7bd;padding-left:24px;margin:20px 0 29px;color:#cad8c9}.detail-copy a{border-bottom:1px solid currentColor}.detail-copy img{width:100%;height:auto;margin:25px 0}.guide-layout{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:clamp(34px,5vw,85px);align-items:start}.guide-aside{position:sticky;top:110px;border:1px solid var(--line);padding:26px;background:#14201b}.guide-aside h3{font-size:12px;letter-spacing:.18em;margin:0 0 21px}.guide-aside dl{margin:0}.guide-aside dt{color:#90a497;font-size:11px;letter-spacing:.08em;margin-bottom:6px}.guide-aside dd{color:#e3ede2;margin:0 0 20px;line-height:1.65;font-size:13px}.guide-aside .notice{padding-top:16px;border-top:1px solid var(--line);font-size:11px;color:#a3b5a5;line-height:1.8}.toc a{display:block;font-size:11px;color:#b7c9b8;padding:8px 0;line-height:1.65}.toc a:hover{color:white}.video-stage{position:relative;aspect-ratio:16/9;background:#1d3028;overflow:hidden;display:grid;place-items:center;border:1px solid #334a3a;margin-bottom:41px}.video-stage .image-fill{filter:saturate(.55) brightness(.38);z-index:0}.video-stage .stage-shade{position:absolute;inset:0;background:#04130f85}.video-stage iframe{width:100%;height:100%;border:0;position:relative;z-index:2}.video-placeholder{position:relative;z-index:2;text-align:center;padding:26px;max-width:520px}.video-placeholder .play-circle{margin:0 auto 25px;display:grid;place-items:center;border:1px solid #d2e4d2;border-radius:50%;width:82px;height:82px;font-size:28px;padding-left:5px}.video-placeholder h2{font-size:22px;margin-bottom:15px;font-weight:500}.video-placeholder p{color:#bfd0c3;font-size:13px;line-height:1.9}.media-section-title{font-size:21px;font-weight:500;letter-spacing:-.03em;margin-bottom:25px}.photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:45px}.photo-grid button{padding:0;border:0;background:#1c2e25;overflow:hidden;position:relative}.photo-grid button img{width:100%;height:100%;aspect-ratio:1.2;object-fit:cover;transition:transform .5s}.photo-grid button:nth-child(3n){grid-column:span 2}.photo-grid button:nth-child(3n) img{aspect-ratio:2.25}.photo-grid button:hover img{transform:scale(1.045)}.photo-grid button:after{content:'↗';font-size:23px;display:grid;place-items:center;position:absolute;right:15px;bottom:15px;width:39px;height:39px;background:#081712a3;border:1px solid #ffffff78;border-radius:50%}.related-wrap{border-top:1px solid var(--line);padding:86px 0 110px}.related-top{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:30px}.related-top h2{font:400 clamp(29px,3.4vw,53px)/1.3 var(--serif);margin-top:17px}.related-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.related-card{border:1px solid var(--line);padding:22px;min-height:205px;display:flex;flex-direction:column;justify-content:space-between;transition:background .2s,border-color .2s;background:#14201b}.related-card:not(.related-current):not(.related-missing):hover{background:#1d2b24;border-color:#6b8672}.related-card .related-upper{display:flex;justify-content:space-between;gap:15px;align-items:center;font-size:10px;letter-spacing:.2em;color:#b1c4b5}.related-card .related-upper .arrow{font-size:20px}.related-card h3{font-size:19px;line-height:1.4;letter-spacing:-.025em;font-weight:500}.related-card small{font-size:11px;color:#93a995;letter-spacing:.05em}.related-current{background:#2b3c30;border-color:#8aa68b}.related-missing{opacity:.55;cursor:default}
/* about / contact */
.interior-section{padding:89px 0 110px}.about-layout{display:grid;grid-template-columns:minmax(270px,.76fr) 1.24fr;gap:clamp(35px,8vw,140px);align-items:start}.portrait-large{width:100%;max-width:460px;aspect-ratio:3/4;object-fit:cover;background:#14251f;border:1px solid var(--line)}.about-copy h2{font:400 clamp(39px,5vw,73px)/1.22 var(--serif);margin:19px 0 35px}.about-copy p{font-size:16px;line-height:2.25;color:#c1d0c2;margin-bottom:27px}.small-facts{display:flex;flex-wrap:wrap;gap:10px;margin:36px 0}.contact-huge{font:400 clamp(35px,6vw,80px)/1.26 var(--serif);letter-spacing:-.025em;max-width:1000px;margin:28px 0 45px}.email-big{font-size:clamp(18px,3vw,38px);display:inline-flex;align-items:center;gap:22px;border-bottom:1px solid #cbdac9;padding-bottom:13px;word-break:break-all}.email-big:hover{color:#bfd5c1}.socials{display:flex;gap:20px;flex-wrap:wrap;margin-top:35px}.socials a{border:1px solid var(--line);padding:12px 17px;font-size:12px}.socials a:hover{border-color:#a4c5a5}
/* footer everywhere */
.footer-wrap{position:relative;isolation:isolate;overflow:hidden;min-height:270px;background:#111c17;border-top:1px solid var(--line);display:flex;align-items:center}.footer-wrap .footer-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.12;filter:grayscale(1);z-index:-2}.footer-wrap:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#0b1512e9,#12221be3);z-index:-1}.footer-inside{padding:46px 0 34px}.footer-main{display:flex;justify-content:space-between;align-items:end;gap:30px;padding-bottom:36px}.footer-main h2{font:400 clamp(28px,3.5vw,48px)/1.3 var(--serif);margin-top:10px}.footer-contact{display:flex;gap:20px;flex-direction:column;align-items:flex-end}.footer-contact a{font-size:16px;border-bottom:1px solid #d9e5d8;padding:0 0 10px}.footer-bottom{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:21px;font-size:10px;color:#92a696;letter-spacing:.12em}.footer-bottom a:hover{color:white}
/* lightbox */
.lightbox{position:fixed;inset:0;z-index:110;background:#040909f2;display:none;align-items:center;justify-content:center;flex-direction:column;padding:70px 60px 55px}.lightbox.open{display:flex}.lightbox img{max-width:100%;max-height:calc(100vh - 150px);object-fit:contain;box-shadow:0 25px 90px #0008}.lightbox .lb-caption{font-size:11px;color:#b3c1b5;padding-top:18px;letter-spacing:.16em}.lb-button{position:absolute;background:#10201cd6;color:white;border:1px solid #cce1d17a;width:46px;height:46px;border-radius:50%;font-size:21px;display:grid;place-items:center}.lb-close{right:27px;top:24px}.lb-prev{left:22px;top:50%;transform:translateY(-50%)}.lb-next{right:22px;top:50%;transform:translateY(-50%)}
.reveal{opacity:0;transform:translateY(29px);transition:opacity .72s cubic-bezier(.2,.7,.3,1),transform .72s cubic-bezier(.2,.7,.3,1)}.reveal.visible{opacity:1;transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@keyframes pageEnter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes scrollPulse{0%{transform:translateY(-25px);opacity:0}60%{opacity:1}100%{transform:translateY(20px);opacity:0}}
@media(max-width:1050px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.filter-row{grid-template-columns:1fr 1fr}.module{min-height:420px}.intro-card{min-height:370px}}
@media(max-width:740px){.shell{width:calc(100% - 42px)}.site-header{height:70px}.brand-text{font-size:10px;letter-spacing:.12em}.brand-mark{font-size:29px}.nav-links{display:none}.nav-toggle{display:grid;place-items:center}.mobile-menu{display:none;position:absolute;left:0;right:0;top:70px;background:#0c1816f5;backdrop-filter:blur(15px);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 21px}.mobile-menu.open{display:flex;flex-direction:column;align-items:stretch}.mobile-menu a{padding:14px;font-size:14px;border-bottom:1px solid #ffffff16}.mobile-menu a:last-child{border-bottom:0}.hero-opening{min-height:100svh}.hero-title{font-size:clamp(54px,11vw,80px)}.hero-contents{padding-top:100px;padding-bottom:110px}.hero-sub{font-size:20px;margin-top:27px}.hero-description{font-size:12px}.hero-bottom{bottom:24px;font-size:9px}.hero-index{display:none}.scroll-line{height:40px}.exlore-start{padding-top:70px}.intro-heading{grid-template-columns:1fr;gap:12px}.intro-heading h2{font-size:43px}.intro-heading p{margin:0 0 15px}.explore-start{padding-top:81px}.intro-card{margin-top:30px;grid-template-columns:1fr}.intro-card-text{padding:36px 28px}.intro-card-media{height:290px;min-height:0}.module-stack{padding-top:22px;gap:18px;padding-bottom:75px}.module{min-height:460px}.module-content{padding:27px}.module h3{font-size:49px}.module h3 em{font-size:23px}.module::before{background:linear-gradient(90deg,#04100dea,#04110daa 65%,#03090744)}.module-corner{bottom:15px;right:17px;font-size:9px}.page-cover{min-height:420px}.page-cover .shell{padding:76px 0 55px}.cover-title{font-size:61px}.catalog{padding:50px 0 80px}.filter-box{padding:17px}.filter-row{grid-template-columns:1fr 1fr}.filter-row .filter-field:first-child{grid-column:1/-1}.filter-row .filter-field:last-child{grid-column:1/-1}.work-grid{gap:29px 13px}.card-title{font-size:17px}.card-summary{font-size:11px}.card-meta{font-size:10px;flex-wrap:wrap}.card-label{top:11px;left:11px;font-size:8px}.card-cover{aspect-ratio:1.14}.detail-top{min-height:570px}.detail-head{padding-top:150px;padding-bottom:42px}.detail-head h1{font-size:49px}.detail-main{padding-top:32px}.guide-layout{grid-template-columns:1fr}.guide-aside{position:static;order:-1}.related-grid{grid-template-columns:1fr}.related-card{min-height:140px}.related-wrap{padding:60px 0 76px}.photo-grid{gap:9px}.photo-grid button:after{width:28px;height:28px;font-size:15px}.about-layout{grid-template-columns:1fr}.portrait-large{max-width:400px}.interior-section{padding:65px 0 80px}.contact-huge{font-size:43px}.footer-wrap{min-height:250px}.footer-inside{padding-top:35px}.footer-main{flex-direction:column;align-items:start}.footer-contact{align-items:start}.footer-contact a{font-size:14px}.lightbox{padding:80px 40px 65px}.lb-button{width:37px;height:37px}.lb-prev{left:7px}.lb-next{right:7px}.lb-close{top:18px;right:18px}}
@media(max-width:430px){.shell{width:calc(100% - 36px)}.hero-title{font-size:51px}.intro-heading h2{font-size:37px}.intro-card-media{height:230px}.module{min-height:430px}.module h3{font-size:42px}.cover-title{font-size:51px}.catalog-top h2{font-size:21px}.work-grid{grid-template-columns:1fr;gap:31px}.card-cover{aspect-ratio:1.38}.card-title{font-size:20px}.card-meta{font-size:11px}.filter-row{gap:10px}.detail-head h1{font-size:40px}.detail-meta{gap:7px}.guide-aside{padding:22px}.email-big{font-size:19px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}

/* V5: the opening is exactly one viewport; there can be no empty, sticky gap. */
body{animation:none}
.opening-stage{height:100svh;position:relative;--opening-progress:0}
.opening-stage .hero-opening{height:100svh;min-height:100svh;position:relative;overflow:hidden}
.opening-stage .hero-opening .image-fill{transform:scale(calc(1.025 + var(--opening-progress)*.035));filter:saturate(.71) brightness(.63)}
.opening-stage .hero-opening:after{content:"";position:absolute;inset:0;z-index:0;background:#0b1010;opacity:calc(var(--opening-progress)*.72);pointer-events:none}
.opening-stage .hero-opening .hero-contents,.opening-stage .hero-opening .hero-bottom{position:relative;z-index:1;opacity:clamp(0,calc(1 - var(--opening-progress)*1.38),1);transform:translate3d(0,calc(var(--opening-progress)*-26px),0);will-change:opacity,transform}
.opening-stage .hero-opening .hero-bottom{position:absolute}
.explore-start{margin-top:0!important;position:relative;scroll-margin-top:0;min-height:100svh;z-index:1}
.module-stack{position:relative;z-index:1}

/* V8: a SINGLE visible photograph transforms from the card into the catalog cover.
   Target images/gradients stay hidden until the same-frame atomic handoff. */
.portal-surface{position:fixed;left:0;top:0;z-index:170;overflow:hidden;pointer-events:none;transform-origin:top left;background:#111a17;contain:layout paint style;isolation:isolate;will-change:transform}
.portal-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.025);will-change:filter}
.portal-card-shade,.portal-cover-shade{position:absolute;inset:0;pointer-events:none}
.portal-card-shade{background:linear-gradient(90deg,#04100ded 2%,#04110dc4 37%,#03090722 100%)}
.portal-cover-shade{background:linear-gradient(90deg,#081111ed,#0915139c 53%,#06110b73),linear-gradient(0deg,#0b1010 0%,transparent 50%)}
.portal-curtain{position:fixed;inset:0;z-index:155;pointer-events:none;background:#0b1010;opacity:0;will-change:opacity}
/* The destination is transparent while the one picture is flying below its text. */
.route-morphing .page-cover{z-index:185;background:transparent}
.route-morphing .page-cover .image-fill{visibility:hidden}
.route-morphing .page-cover::before{opacity:0}
.route-morphing .page-cover .shell{position:relative;z-index:1}
.route-reversing-cover .page-cover{z-index:185;background:transparent}
.route-reversing-cover .page-cover .image-fill{visibility:hidden}
.route-reversing-cover .page-cover::before{opacity:0}
.route-reversing-cover .page-cover .shell{position:relative;z-index:1}
/* Home card text stays ABOVE the returning image as it recovers clarity. */
.route-reversing .module-stack{z-index:185}
.route-reversing .module.portal-target{visibility:visible!important;background:transparent}
.route-reversing .module.portal-target img{visibility:hidden}
.route-reversing .module.portal-target::before{opacity:0}
.route-reversing .module.portal-target .module-content{position:relative;z-index:2}
/* The native catalog has the same final visual as the shared photo. */
.page-cover .image-fill{filter:blur(3.5px) saturate(.68) brightness(.58);transform:scale(1.025)}
/* First-screen cinematic dissolve: a fixed photographic frame avoids blank seams. */
.opening-flight{position:fixed;inset:0;z-index:45;pointer-events:none;overflow:hidden;will-change:opacity;contain:layout paint style}
.opening-flight .hero-opening{height:100%;min-height:100%;width:100%;overflow:hidden}
.opening-flight .hero-opening .image-fill{filter:saturate(.71) brightness(.63);transform:scale(1.025)}
.opening-flight .hero-contents,.opening-flight .hero-bottom{will-change:opacity,transform}
.opening-in-flight .opening-stage .hero-opening .hero-contents,
.opening-in-flight .opening-stage .hero-opening .hero-bottom{visibility:hidden}
@media(prefers-reduced-motion:reduce){.opening-flight,.portal-surface,.portal-curtain{display:none!important}}

/* V8: Keep the global navigation above the portal for an uninterrupted alpha fade.
   Header's solid background, border and links all dissolve as ONE layer. */
.route-morphing .site-header,
.route-reversing-cover .site-header,
.route-reversing .site-header {z-index:205;will-change:opacity}
/* Level 03 words always remain exactly in place during the transition. */
.route-morphing .page-cover .shell > * {will-change:opacity}

/* V9: the introduction is one complete viewport, never a long intermediate page. */
.explore-start{height:100svh;min-height:100svh;max-height:100svh;display:flex;flex-direction:column;justify-content:space-between;padding:clamp(94px,12vh,125px) 0 18px!important;gap:clamp(8px,1.6vh,17px);overflow:hidden}
.explore-start .section-cap{margin:0;flex:0 0 auto}
.explore-start .intro-heading{grid-template-columns:.85fr 1.15fr;gap:32px;align-items:center;flex:0 0 auto}
.explore-start .intro-heading h2{font-size:clamp(30px,4.05vw,64px);line-height:1.12;margin-top:8px}
.explore-start .intro-heading p{margin:0 0 6px;font-size:clamp(11px,.85vw,13px);line-height:1.6}
.explore-start .intro-card{margin:0;flex:1 1 auto;min-height:0;max-height:none;grid-template-columns:1.12fr .88fr}
.explore-start .intro-card-text{padding:clamp(12px,2.5vw,38px);gap:clamp(7px,1.2vh,16px)}
.explore-start .intro-card-text h3{font-size:clamp(22px,2.7vw,42px);line-height:1.2}
.explore-start .intro-card-text p{font-size:clamp(10px,.89vw,13px);line-height:1.65;max-width:720px}
.explore-start .intro-card-media{height:100%;min-height:0}
.module-stack{scroll-margin-top:85px;padding-top:15px}
.seam-flight{position:fixed;inset:0;z-index:45;pointer-events:none;background:#0b1010;overflow:hidden;will-change:opacity,filter;contain:layout paint}
.seam-flight > .seam-visual{position:absolute;margin:0!important;max-height:none!important;max-width:none!important;overflow:hidden}
.seam-flight > .seam-visual.explore-start{padding-right:0;padding-left:0}
.seam-receiving{will-change:opacity,filter}
@media(max-width:740px){
 .explore-start{padding:79px 0 13px!important;gap:8px}
 .explore-start .section-cap{font-size:9px}
 .explore-start .section-cap .section-number{font-size:25px}
 .explore-start .intro-heading{display:block;flex:0 0 auto}
 .explore-start .intro-heading>div:first-child .eyebrow{font-size:9px}
 .explore-start .intro-heading h2{font-size:clamp(27px,8.2vw,38px);margin:2px 0 3px;line-height:1.08}
 .explore-start .intro-heading>div:nth-child(2){display:flex;align-items:center;gap:12px}
 .explore-start .intro-heading p{font-size:10px;line-height:1.4;max-width:64%;margin:0}
 .explore-start .intro-heading .btn-link{font-size:10px;gap:5px;min-width:115px}
 .explore-start .intro-card{grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) minmax(105px,.58fr)}
 .explore-start .intro-card-text{padding:13px 17px;gap:7px;justify-content:center}
 .explore-start .intro-card-text .eyebrow{font-size:8px}
 .explore-start .intro-card-text h3{font-size:clamp(22px,6vw,28px);line-height:1.2}
 .explore-start .intro-card-text p{font-size:10px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
 .explore-start .intro-card-text .btn-link{font-size:10px;padding:0}
 .explore-start .intro-card-media{height:100%;min-height:0}
 .explore-start .intro-card-media .portrait-note{font-size:8px;padding:6px}
 .module-stack{scroll-margin-top:70px;padding-top:9px}
}
@media(max-height:680px){.explore-start .intro-card-text p{-webkit-line-clamp:3}.explore-start .intro-heading p{font-size:10px}.explore-start{padding-top:75px!important}}
@media(prefers-reduced-motion:reduce){.seam-flight{display:none!important}}

/* Native language menu — included in the animated header so it fades as one piece. */
.language-switch{display:flex;align-items:center;flex:0 0 auto}
.language-switch select{max-width:124px;min-height:36px;padding:5px 22px 5px 9px;border:1px solid #bcd2c35e;border-radius:2px;background:#11201dcc;color:#e8f2e8;font-size:11px;letter-spacing:.01em;cursor:pointer;color-scheme:dark}
.language-switch option{background:#10201b;color:#fff}
.nav-links{margin-left:auto}
[dir="rtl"] .module::before{background:linear-gradient(270deg,#04100ded 2%,#04110dc4 37%,#03090722 100%)}
[dir="rtl"] .intro-card-media:after{background:linear-gradient(270deg,#17252177,transparent 30%)}
[dir="rtl"] .hero-index{writing-mode:vertical-lr}
[dir="rtl"] .brand{direction:ltr}
[dir="rtl"] .module-corner{right:auto;left:30px}
[dir="rtl"] .card-arrow{right:auto;left:14px}
[dir="rtl"] .guide-aside{text-align:right}
[dir="rtl"] .nav-links{margin-right:auto;margin-left:0}
[dir="rtl"] .portal-surface{direction:ltr}
html[lang="ar"]{font-family:Tahoma,Arial,sans-serif}
html[lang="ar"] body{font-family:Tahoma,Arial,sans-serif}
html[lang="ja"] body{font-family:'Noto Sans JP','Yu Gothic',system-ui,sans-serif}
@media(max-width:740px){.nav-container{gap:10px}.brand{gap:8px}.brand-text{max-width:124px;overflow:hidden;text-overflow:ellipsis}.language-switch{margin-left:auto}.language-switch select{max-width:112px;font-size:10px;min-height:35px}.nav-toggle{flex:0 0 40px}}
@media(max-width:380px){.brand-text{max-width:84px}.language-switch select{max-width:92px}}

/* V11: No footer or page-end CTA may leak into a portal transition.
   The footer is not an element of the shared-image animation. */
body.route-morphing > .footer-wrap,
body.route-reversing-cover > .footer-wrap,
body.route-reversing > .footer-wrap {visibility:hidden!important;opacity:0!important;pointer-events:none!important}
/* On screen Level 03 copy moves exactly 0px; one synchronous opacity timeline. */
body.route-morphing .page-cover .shell,
body.route-morphing .page-cover .shell > * {transform:none!important;transition: none!important}
/* Turn off scroll-to-reveal effects inside incoming Level 03 until the portal completes. */
body.route-morphing .catalog .reveal,
body.route-morphing .interior-section .reveal{transform:none!important;transition:none!important}

/* Never let scroll anchoring/smooth scroll adjust the title's screen Y while swapping route markup. */
html:has(body.route-morphing),html:has(body.route-reversing),html:has(body.route-reversing-cover){overflow-anchor:none!important;scroll-behavior:auto!important}

/* V12: returning from a catalog must NEVER travel from the top of the homepage.
   The module image morph is the only visible movement. */
html.portal-scroll-lock,
html.portal-scroll-lock body{scroll-behavior:auto!important;scroll-snap-type:none!important;overflow-anchor:none!important}
body.route-reverse-positioning > main,
body.route-reverse-positioning > .footer-wrap{visibility:hidden!important}

/* V13 – first arrival. The landscape, navigation and copy emerge in place. */
@keyframes homeBootCurtain{0%{opacity:1}28%{opacity:1}100%{opacity:0}}
@keyframes homeBootPhoto{from{opacity:.62;filter:saturate(.54) brightness(.32) blur(7px);transform:scale(1.11)}to{opacity:1;filter:saturate(.71) brightness(.63) blur(0);transform:scale(1.025)}}
@keyframes homeBootCopy{from{opacity:0;filter:blur(13px)}to{opacity:1;filter:blur(0)}}
@keyframes homeBootNav{from{opacity:0;filter:blur(7px)}to{opacity:1;filter:blur(0)}}
body.home-boot::after{content:"";position:fixed;inset:0;z-index:320;pointer-events:none;background:#0b1010;animation:homeBootCurtain 1080ms cubic-bezier(.3,.04,.23,1) both}
body.home-boot .opening-stage .hero-opening .image-fill{animation:homeBootPhoto 1380ms cubic-bezier(.18,.72,.3,1) both}
body.home-boot .opening-stage .hero-contents{animation:homeBootCopy 900ms 340ms ease-out both;transform:none}
body.home-boot .opening-stage .hero-bottom{animation:homeBootCopy 800ms 640ms ease-out both;transform:none}
body.home-boot #site-header{animation:homeBootNav 850ms 470ms ease-out both}
@media(prefers-reduced-motion:reduce){body.home-boot::after{display:none}body.home-boot .opening-stage .hero-opening .image-fill,body.home-boot .opening-stage .hero-contents,body.home-boot .opening-stage .hero-bottom,body.home-boot #site-header{animation:none!important;filter:none}}
