:root{--ink:#151614;--paper:#f3f1e9;--gold:#d2b56f;--muted:#b4b4a9;--line:rgba(255,255,255,.18);--ease:cubic-bezier(.22,1,.36,1);--gutter:clamp(24px,5vw,88px);--m-instant:120ms;--m-fast:220ms;--m-normal:420ms;--m-slow:700ms;--m-cinematic:1000ms;--m-stagger:80ms;--ease-standard:cubic-bezier(.22,1,.36,1);--ease-enter:cubic-bezier(.16,1,.3,1);--ease-exit:cubic-bezier(.4,0,1,1);--m-reveal-y:28px;--m-hero-y:32px;--m-hover-scale:1.04;--m-arrow-x:8px;--header-h:96px;--header-h-compact:72px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h-compact) + 24px)}body{margin:0;background:var(--ink);color:var(--paper);font-family:'Manrope','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased;line-height:1.8}body:has(dialog[open]){overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #d7b967;outline-offset:6px}img{display:block;max-width:100%;height:auto}button{color:inherit}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:500;letter-spacing:-.04em;line-height:1.45}p{font-size:16px}::selection{background:var(--gold);color:var(--ink)}[hidden]{display:none!important}.wrap{padding-inline:var(--gutter)}.eyebrow{display:block;font-size:12px;font-weight:600;letter-spacing:.16em;line-height:1.5;text-transform:uppercase}.label{font-size:13px;color:var(--muted)}.gold{color:var(--gold)}body{padding-top:var(--header-h)}.header{height:var(--header-h);padding:0 var(--gutter);display:flex;align-items:center;justify-content:space-between;gap:24px;position:fixed;top:0;left:0;right:0;z-index:40;background:rgba(21,22,20,.9);backdrop-filter:blur(20px);border-bottom:1px solid var(--line);transition:height var(--m-normal) var(--ease-standard),background var(--m-normal),box-shadow var(--m-normal)}.header.is-compact{height:var(--header-h-compact);background:rgba(21,22,20,.97);box-shadow:0 12px 32px -20px #000}.brand{width:188px;flex-shrink:0}.brand img,.brand-svg{width:100%;height:49px;display:block;object-fit:contain;transition:transform var(--m-normal) var(--ease-standard);transform-origin:left center}.header.is-compact .brand img,.header.is-compact .brand-svg{transform:scale(.88)}.desktop-nav{display:flex;gap:32px;align-items:center;font-size:13px}.desktop-nav>a:not(.nav-contact){position:relative;padding:14px 0}.desktop-nav>a:not(.nav-contact):after{content:'';height:1px;background:var(--gold);position:absolute;left:0;right:100%;bottom:4px;transition:right var(--m-fast) var(--ease-standard)}.desktop-nav>a:hover:after,.desktop-nav>a[aria-current=page]:after{right:0}.nav-contact{border:1px solid #767a6b;border-radius:50px;padding:11px 24px}.menu-button{display:none;background:transparent;border:1px solid #777b69;border-radius:50%;width:48px;height:48px;place-items:center}.menu-button span{width:19px;height:8px;border-block:1px solid}.motion-control{position:fixed;z-index:35;right:22px;bottom:20px;display:inline-flex;align-items:center;justify-content:center;background:#292c25e8;backdrop-filter:blur(12px);color:#f4f1e8;border:1px solid #73745f;border-radius:30px;padding:9px 15px;font-size:11px;letter-spacing:.07em;box-shadow:0 3px 15px #0002}.mc-icon{display:none;fill:#f4f1e8}.motion-control[aria-pressed=true] .mc-pause,.motion-control:not([aria-pressed=true]) .mc-play{display:none}.hero{min-height:735px;position:relative;overflow:hidden;padding-top:68px;padding-bottom:36px}.hero:before{content:'';position:absolute;pointer-events:none;width:1000px;height:1000px;right:-550px;top:-450px;background:radial-gradient(ellipse,#ac884422,transparent 64%);animation:glow 10s ease-in-out infinite alternate}.hero-main{position:relative;z-index:2;padding-top:25px;width:60%}.hero-kicker{display:flex;align-items:center;gap:14px;font-size:13px;letter-spacing:.09em;margin-bottom:32px}.hero-kicker:before{content:'';width:32px;height:1px;background:var(--gold)}.hero h1{font-size:clamp(48px,5.5vw,84px);font-weight:600;line-height:1.43;letter-spacing:-.07em}.hero h1 span{display:block;overflow:hidden}.hero h1 span b{display:block;font-weight:inherit;animation:title-in var(--m-cinematic) var(--ease-enter) both;animation-delay:calc(var(--m-stagger)*2.5)}.hero h1 span:nth-child(2) b{animation-delay:calc(var(--m-stagger)*3.75)}.hero-copy{max-width:480px;font-size:14px;color:#babcb1;margin:27px 0 28px;line-height:2}.button{display:inline-flex;align-items:center;justify-content:center;gap:26px;padding:18px 30px;border:1px solid var(--line);border-radius:2px;font-size:14px;position:relative;overflow:hidden;transition:background var(--m-fast) var(--ease-standard),box-shadow var(--m-fast),transform var(--m-fast) var(--ease-standard);text-align:center}.button-gold{background:var(--gold);color:var(--ink);border-color:var(--gold)}.button-gold:hover{background:#ebce87;box-shadow:0 0 28px #d2b56f33;transform:translateY(-2px)}.button-light{background:var(--paper);color:var(--ink);border-color:var(--paper)}.button-ink{background:var(--ink);color:var(--paper)}.button:hover:not(.button-gold){background:#72786822}.button-ink:hover{background:#30342a!important}.external-icon{font-size:13px;line-height:1;display:inline-block;width:13px;height:13px;border:1px solid currentColor;border-top:0;border-right:0;position:relative;margin-right:3px}.external-icon:before{content:'';position:absolute;width:6px;height:6px;border-top:1px solid;border-right:1px solid;right:-3px;top:-3px}.external-icon:after{content:'';position:absolute;width:10px;height:1px;background:currentColor;transform:rotate(-45deg);top:2px;right:-3px}.hero-art{position:absolute;right:var(--gutter);top:82px;width:43%;height:494px}.orbit{position:absolute;border:1px solid #ac915459;border-radius:50%;height:600px;width:600px;left:-55px;top:-67px;transform:rotate(-24deg);animation:orbit-drift 18s ease-in-out infinite alternate}.orbit:after{content:'';position:absolute;inset:25px;border:1px solid #ac91542a;border-radius:50%}.hero-photo{position:absolute;inset:0;overflow:hidden;border-radius:180px 0 0 0;background:#89866d}.hero-photo>img{width:100%;height:100%;object-fit:cover;object-position:62% center;filter:brightness(.77) saturate(.6);animation:photo-in calc(var(--m-cinematic)*1.5) var(--ease-standard) both}.hero-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#15161410,transparent 50%),linear-gradient(0deg,#151614b0,transparent 50%)}.hero-stamp{position:absolute;z-index:1;bottom:22px;left:26px;right:26px;display:flex;justify-content:space-between;align-items:end;gap:24px}.hero-stamp img{width:196px;filter:brightness(0) invert(1)}.hero-stamp .eyebrow{font-size:11px;line-height:1.8}.hero-caption{position:absolute;right:0;bottom:-40px;font-size:11px;color:#8f9285;letter-spacing:.08em}.hero-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:85px;padding-top:26px;border-top:1px solid var(--line);font-size:11px;letter-spacing:.14em;color:#aaa99a}.scroll-cue{display:flex;align-items:center;gap:17px}.scroll-cue i{width:50px;height:1px;background:#bda263;position:relative;overflow:hidden}.scroll-cue i:after{content:'';position:absolute;width:14px;height:1px;background:white;animation:scroll-line 2s infinite}.marquee{overflow:hidden;padding:27px 0 32px;border-block:1px solid var(--line);color:#ac9563;user-select:none}.marquee-track{width:max-content;display:flex;gap:45px;animation:ticker 34s linear infinite;font-size:clamp(44px,6vw,84px);line-height:1;font-weight:400;letter-spacing:-.045em}.marquee-track span{display:flex;gap:45px;align-items:center}.marquee-track em{font-size:40px;font-style:normal;color:#635c43}.section{padding-block:110px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-bottom:54px;gap:30px}.section-heading h2{font-size:clamp(30px,3.5vw,52px)}.section-heading .eyebrow{margin-bottom:20px}.section-count{font-size:12px;color:var(--muted);letter-spacing:.13em}.flagship-layout{display:grid;grid-template-columns:1.12fr 1fr;gap:6vw;align-items:center}.flagship-image{position:relative;min-width:0}.flagship-image .main-image{width:100%;aspect-ratio:1.14;object-fit:cover;filter:saturate(.65);border-radius:3px}.image-caption{font-size:11px;color:#939588;margin-top:8px}.brand-panel{position:absolute;left:-1px;bottom:32px;background:var(--paper);padding:28px 40px;width:65%;display:flex;align-items:center;gap:16px}.brand-panel img{width:100%}.flagship-copy .eyebrow{color:var(--gold);margin-bottom:21px}.flagship-copy h3{font-size:clamp(28px,3vw,42px);margin-bottom:24px}.flagship-copy p{color:#b9bbb0;line-height:2.2;font-size:15px}.text-link{display:inline-flex;border-bottom:1px solid #777b69;padding:11px 0;gap:34px;font-size:14px;transition:gap var(--m-fast) var(--ease-standard)}.text-link:hover{gap:46px}.text-link i{font-style:normal;font-size:12px}.flagship-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:31px}.flagship-actions .button{font-size:13px;padding-inline:23px}.brand-detail{border-top:1px solid var(--line);padding-top:22px;margin-top:28px;display:flex;justify-content:space-between;font-size:12px;color:var(--muted)}.services{background:var(--paper);color:var(--ink);position:relative}.services .eyebrow,.services .section-count{color:#746644}.services .section-heading{margin-bottom:44px}.services-intro{max-width:390px;font-size:14px;line-height:2.1;color:#606352}.service-list{border-top:1px solid #c3c6b7}.service-row{display:grid;grid-template-columns:65px 1fr 1fr 64px;align-items:center;padding:37px 0;border-bottom:1px solid #c3c6b7;gap:30px;position:relative;transition:border-color var(--m-normal) var(--ease-standard)}.service-row:before{content:'';position:absolute;inset:0 -22px;background:#e7e4d9;opacity:0;transition:opacity var(--m-normal) var(--ease-standard);z-index:-1}.service-row>*{position:relative}.service-row:hover,.service-row:focus-visible{border-color:#151614}.service-row:hover:before,.service-row:focus-visible:before{opacity:1}.service-row h3{transition:transform var(--m-normal) var(--ease-standard)}.service-row:hover h3,.service-row:focus-visible h3{transform:translateX(4px)}.service-row .num{font-size:13px;color:#726d57;align-self:start;padding-top:7px}.service-row h3,.service-row h2{font-size:36px;font-family:Manrope,sans-serif;line-height:1.2;font-weight:500;letter-spacing:-.04em}.service-row small{display:block;margin-top:9px;font-size:13px}.service-row p{font-size:14px;color:#616457;line-height:1.9;max-width:330px}.round-plus{width:54px;height:54px;border:1px solid #a6aa97;border-radius:50%;display:grid;place-items:center;font-weight:400;font-size:26px;transition:background var(--m-fast),color var(--m-fast),transform var(--m-normal) var(--ease-standard)}.service-row:hover .round-plus,.service-row:focus-visible .round-plus{background:var(--ink);color:var(--paper);transform:translateX(var(--m-arrow-x)) rotate(90deg)}.section-bottom{margin-top:33px;display:flex;justify-content:end}.vision{display:grid;grid-template-columns:1fr 1fr;gap:9vw;align-items:start}.vision .eyebrow{margin-bottom:35px}.vision h2{font-size:clamp(32px,3.8vw,58px)}.vision-copy{padding-top:58px;color:#b3b7a8}.vision-copy p{line-height:2.3}.vision-words{display:flex;gap:25px;flex-wrap:wrap;margin-top:38px;padding-top:27px;border-top:1px solid var(--line);font-size:13px;color:var(--gold)}.company-strip{border-block:1px solid var(--line);display:grid;grid-template-columns:1.1fr 1fr;min-height:320px}.company-title{padding:60px var(--gutter);border-right:1px solid var(--line)}.company-title h2{font-size:56px;letter-spacing:-.05em;margin-top:10px}.company-info{padding:60px;display:flex;flex-direction:column;justify-content:center;align-items:start}.company-info p{font-size:17px}.company-info .label{margin:10px 0 20px}.contact-section{background:#d2b56f;color:var(--ink);padding:90px var(--gutter)}.contact-section>.eyebrow{color:#40381f;margin-bottom:24px}.contact-section h2{font-size:clamp(34px,4.5vw,64px);margin-bottom:40px}.contact-choices{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #7b6c483d}.contact-choice{padding:32px 0;display:flex;justify-content:space-between;align-items:center;gap:30px}.contact-choice:first-child{padding-right:40px;border-right:1px solid #7b6c4866}.contact-choice:last-child{padding-left:40px}.contact-choice h3{font-size:20px;letter-spacing:-.03em}.contact-choice p{font-size:13px;color:#40381f;margin-top:5px}.contact-choice .round-plus{border-color:#817248}.contact-choice:hover .round-plus{background:#171914;color:var(--gold)}.footer{padding:60px var(--gutter) 25px}.footer-top{display:flex;justify-content:space-between;gap:50px;margin-bottom:64px}.footer-brand img{width:210px;height:65px;object-fit:contain;object-position:left}.footer-brand p{font-size:13px;color:#9a9e8d;margin-top:18px}.footer-links{display:grid;grid-template-columns:1fr 1fr;gap:16px 50px;font-size:13px}.footer-bottom{border-top:1px solid var(--line);padding-top:24px;display:flex;justify-content:space-between;gap:30px;font-size:12px;color:#919585;letter-spacing:.05em}.page-intro{padding-top:38px;padding-bottom:80px;position:relative;overflow:hidden}.breadcrumbs{display:flex;gap:14px;flex-wrap:wrap;list-style:none;padding:0;margin:0 0 70px;font-size:11px;color:#aaa99a}.breadcrumbs li+li:before{content:'/';padding-right:14px;color:#676b5b}.page-intro .eyebrow{color:var(--gold);margin-bottom:24px}.page-intro h1{font-size:clamp(43px,6vw,80px);letter-spacing:-.055em;max-width:1000px}.page-intro .lead{max-width:640px;font-size:16px;color:#b3b7a8;margin-top:30px;line-height:2.1}.page-intro .button{margin-top:30px}.page-intro .intro-num{position:absolute;right:var(--gutter);top:100px;font-size:190px;font-weight:400;color:#272b23;z-index:-1;line-height:1}.feature-image{height:500px;position:relative;overflow:hidden}.feature-image>img{width:100%;height:100%;object-fit:cover;object-position:center 46%;filter:saturate(.65)}.feature-image>.brand-panel{bottom:40px;left:var(--gutter);width:310px}.nessie-story{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.nessie-story h2{font-size:40px;margin:23px 0}.nessie-story p{color:#b4b8aa;line-height:2.1}.nessie-story>img{width:100%;aspect-ratio:1.2;object-fit:cover}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:35px}.principle{border-top:1px solid #b9beab;padding-top:25px}.principle .eyebrow{color:#73613a}.principle h3{font-size:25px;margin:26px 0 16px}.principle p{color:#5d6353;font-size:14px}.service-detail-main{display:grid;grid-template-columns:.65fr 1fr;gap:8vw}.side-heading .eyebrow{margin-bottom:20px}.side-heading h2{font-size:36px}.detail-list{border-top:1px solid #b9beab}.detail-item{border-bottom:1px solid #b9beab;padding:30px 0}.detail-item h3{font-size:24px}.detail-item p{margin-top:12px;color:#616457;font-size:14px;line-height:2}.detail-item span{display:inline-block;color:#6f5a2c;font-size:12px;margin-right:20px}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:50px}.step{padding-top:24px;border-top:1px solid var(--line)}.step .eyebrow{color:var(--gold)}.step h3{font-size:19px;margin:22px 0 14px}.step p{font-size:14px;color:#a7ad9a;line-height:2}.service-art{height:220px;position:relative;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at 50% 0,#52493555,transparent 70%)}.service-art .art-word{font-size:clamp(70px,13vw,180px);line-height:1;font-weight:400;color:#afa37d33;letter-spacing:-.075em;animation:art-drift 12s ease-in-out infinite alternate}.service-art:after{content:'';position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(16.66% - 1px),#89806122 16.66%)}.related{display:flex;gap:18px;flex-wrap:wrap;margin-top:38px}.related a{border:1px solid #6b715b;padding:16px 26px;font-size:14px}.related a:hover{background:#ffffff0a}.company-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:8vw}.company-grid .statement{font-size:34px;line-height:1.7;letter-spacing:-.04em}.company-table{margin:0}.company-table>div{display:grid;grid-template-columns:125px 1fr;border-top:1px solid #bdc1af;padding:25px 0;gap:20px;font-size:14px}.company-table>div:last-child{border-bottom:1px solid #bdc1af}.company-table dt{color:#5d624d}.company-table dd{margin:0;line-height:2}.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.contact-aside{position:sticky;top:130px;align-self:start}.contact-aside h2{font-size:30px;margin-top:20px}.contact-aside p{font-size:14px;color:#606552;margin:20px 0}.contact-aside .nessie-contact{border:1px solid #c4c7b8;padding:26px;margin-top:30px}.nessie-contact img{width:175px;margin-bottom:20px}.nessie-contact .text-link{font-size:12px;gap:15px}.form-notice{padding:16px 20px;background:#e5e2d7;border-left:2px solid #a58a4b;font-size:14px;color:#3f3a2a;margin-bottom:30px;line-height:1.9}.form-notice a{text-decoration:underline}.field-hint{font-size:12px;color:#5d624d;margin-top:8px;line-height:1.7}.form-field .field-hint{margin-top:8px}.button[disabled]{opacity:.55;cursor:not-allowed}.privacy-date{margin-top:40px}.legal ul{margin:0;padding-left:1.4em;color:#666b59;line-height:2;font-size:14px}.legal section+section{margin-top:0}.form-field{margin-bottom:27px}.form-field label,.form-field legend{display:block;font-size:14px;margin-bottom:11px}.required{font-size:12px;color:#76602e;margin-left:12px}.form-field input,.form-field textarea,.form-field select{width:100%;background:transparent;border:1px solid #bfc3b0;padding:14px;color:#23261f;border-radius:0;font-size:16px}.form-field textarea{min-height:160px;resize:vertical}.form-field input::placeholder,.form-field textarea::placeholder{color:#6d705f}.form-field fieldset{padding:0;border:0}.consent{font-size:14px;display:flex;align-items:start;gap:12px;margin:32px 0}.consent input{margin-top:7px;accent-color:#7e6633;width:17px;height:17px}.consent a{text-decoration:underline}.legal{max-width:900px}.legal h2{font-size:26px;margin:38px 0 18px}.legal p{color:#666b59;line-height:2}.legal .form-notice{padding:16px 20px;background:#e5e2d7;border-left:2px solid #a58a4b;font-size:14px;color:#3f3a2a;margin-bottom:30px;line-height:1.9}.form-notice a{text-decoration:underline}.field-hint{font-size:12px;color:#5d624d;margin-top:8px;line-height:1.7}.form-field .field-hint{margin-top:8px}.button[disabled]{opacity:.55;cursor:not-allowed}.privacy-date{margin-top:40px}.legal ul{margin:0;padding-left:1.4em;color:#666b59;line-height:2;font-size:14px}.legal section+section{margin-top:0}.thanks{padding-block:100px 140px;text-align:center}.thanks h1{font-size:48px}.thanks p{margin:22px auto 40px;color:#b2b6a5;max-width:650px}.menu-dialog{width:100%;max-width:none;height:100dvh;max-height:none;background:#181b15;color:var(--paper);border:0;padding:calc(18px + env(safe-area-inset-top,0px)) var(--gutter) calc(22px + env(safe-area-inset-bottom,0px));margin:0;overscroll-behavior:contain}.menu-dialog[open]{display:flex;flex-direction:column}.menu-dialog::backdrop{background:#151614}
.menu-top{display:flex;justify-content:space-between;align-items:center;min-height:44px}.menu-top .brand img{height:44px}
.menu-close{width:44px;height:44px;border-radius:50%;background:transparent;border:1px solid #858671;color:var(--paper);display:grid;place-items:center;padding:0}.menu-close span{position:relative;display:block;width:18px;height:1px;background:currentColor;transform:rotate(45deg)}.menu-close span:before{content:'';position:absolute;inset:0;background:currentColor;transform:rotate(90deg)}.menu-close:active,.menu-button:active{background:rgba(255,255,255,.06)}
.menu-nav{display:flex;flex-direction:column;margin-top:clamp(24px,6vh,48px);border-top:1px solid rgba(255,255,255,.14)}.menu-nav:focus,.menu-nav:focus-visible{outline:0}
.menu-nav a{display:grid;grid-template-columns:30px 1fr 16px;align-items:center;gap:14px;min-height:60px;padding:13px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:19px;font-weight:500;letter-spacing:.02em;line-height:1.3;transition:color var(--m-fast),background var(--m-fast)}
.menu-num{font-size:11px;letter-spacing:.14em;color:var(--gold);font-family:'Manrope',sans-serif;font-weight:600}.menu-label small{display:block;font-size:10px;letter-spacing:.16em;color:#9a9e8d;text-transform:uppercase;margin-top:4px;font-weight:600;line-height:1.3}
.menu-arrow{width:8px;height:8px;border-top:1px solid;border-right:1px solid;transform:rotate(45deg);justify-self:end;margin-right:4px;color:#9a9e8d;transition:transform var(--m-fast) var(--ease-standard),color var(--m-fast)}
.menu-nav a:active{background:rgba(255,255,255,.04)}.menu-nav a:active .menu-arrow,.menu-nav a[aria-current=page] .menu-arrow{transform:translateX(3px) rotate(45deg);color:var(--gold)}
.menu-nav .menu-cta{margin-top:18px;border:1px solid rgba(210,181,111,.5);border-radius:2px;padding:13px 18px;background:rgba(210,181,111,.07);color:var(--gold)}.menu-cta .menu-arrow{color:var(--gold)}.menu-cta .menu-label small{color:#a7925d}.menu-cta:active{background:rgba(210,181,111,.14)}
.menu-foot{margin-top:auto;padding-top:14px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:0 22px;justify-content:space-between;align-items:center;font-size:12px;letter-spacing:.02em}.menu-foot a{display:inline-flex;align-items:center;gap:10px;min-height:44px;color:#c9ccbd}.menu-foot .external-icon{width:10px;height:10px;font-size:10px}.reveal{opacity:1;transform:none}.ready .reveal:not(.seen){opacity:0;transform:translateY(var(--m-reveal-y))}.reveal{transition:opacity var(--m-slow) var(--ease-enter),transform var(--m-slow) var(--ease-enter);transition-delay:calc(var(--i,0)*var(--m-stagger))}
@keyframes title-in{from{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes photo-in{from{transform:scale(1.1);filter:brightness(.5) saturate(.6)}to{transform:scale(1);filter:brightness(.77) saturate(.6)}}@keyframes orbit-drift{to{transform:rotate(14deg) scale(.97,.93)}}@keyframes glow{to{transform:translate(-100px,180px);opacity:.4}}@keyframes ticker{to{transform:translateX(-50%)}}@keyframes scroll-line{from{transform:translateX(-15px)}to{transform:translateX(55px)}}@keyframes art-drift{from{transform:translateX(-10px)}to{transform:translateX(10px)}}
body.motion-off *,body.motion-off *:before,body.motion-off *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}body.motion-off .reveal{opacity:1!important;transform:none!important}.motion-off .reveal-line:before{transform:none!important}.motion-off .hero-photo,.motion-off .hero-main{transform:none!important}.motion-off .media,.motion-off .hero-photo>img,.motion-off .feature-image>img{clip-path:none!important}
@media(prefers-reduced-motion:reduce){html:not(.motion-on){scroll-behavior:auto}body:not(.motion-on) *,body:not(.motion-on) *:before,body:not(.motion-on) *:after{animation:none!important;transition:none!important}body:not(.motion-on).ready .reveal:not(.seen){opacity:1;transform:none}body:not(.motion-on) .reveal-line:before{transform:none!important}body:not(.motion-on) .hero-photo,body:not(.motion-on) .hero-main{transform:none!important}body:not(.motion-on) .media,body:not(.motion-on) .hero-photo>img,body:not(.motion-on) .feature-image>img{clip-path:none!important}html:not(.motion-on)::view-transition-group(*),html:not(.motion-on)::view-transition-old(root),html:not(.motion-on)::view-transition-new(root){animation-duration:0s!important}}
@media(min-width:1700px){.hero{min-height:820px}.hero-art{height:590px}.hero-main{padding-top:50px}.hero-bottom{margin-top:110px}}
@media(max-width:1080px){.desktop-nav{gap:22px}.hero{min-height:680px;padding-top:50px}.hero h1{font-size:59px}.hero-art{width:42%;height:455px;top:65px}.hero-copy{max-width:350px}.hero-bottom{margin-top:70px}.hero-stamp img{width:160px}.hero-stamp .eyebrow{display:none}.hero-main{width:62%}.service-row{grid-template-columns:40px 1fr .9fr 50px;gap:20px}.service-row h3{font-size:29px}.company-info{padding:45px}.contact-layout{gap:5vw}}
@media(max-width:760px){:root{--header-h:79px;--header-h-compact:64px;--m-cinematic:700ms;--m-stagger:64ms}.header{height:var(--header-h)}.brand{width:160px}.brand img{height:44px}.desktop-nav{display:none}.menu-button{display:grid}.hero{padding-top:32px;padding-bottom:24px;min-height:0}.hero-main{width:100%;padding:0}.hero-kicker{font-size:12px;gap:10px;margin-bottom:22px}.hero-kicker:before{width:20px}.hero h1{font-size:clamp(39px,10vw,65px);line-height:1.4;letter-spacing:-.07em}.hero-copy{font-size:14px;max-width:440px;margin:20px 0 24px;line-height:2}.hero .button{font-size:14px;padding:15px 23px}.hero-art{position:relative;top:auto;right:auto;margin:36px 0 0 32px;width:calc(100% - 32px);height:300px}.hero-photo{border-radius:100px 0 0 0}.hero-photo>img{object-position:60% 42%}.orbit{height:380px;width:380px;left:-60px;top:-27px}.hero-stamp{bottom:22px;left:24px}.hero-stamp img{width:180px}.hero-caption{font-size:10px;bottom:-25px}.hero-bottom{margin-top:53px;padding-top:20px;font-size:10px;gap:20px}.hero-bottom>span{max-width:180px}.scroll-cue{gap:10px;white-space:nowrap}.scroll-cue i{width:30px}.marquee{padding:23px 0}.marquee-track{font-size:49px;gap:25px}.marquee-track span{gap:25px}.marquee-track em{font-size:25px}.section{padding-block:70px}.section-heading{display:block;margin-bottom:35px}.section-heading h2{font-size:32px}.section-heading .eyebrow{margin-bottom:16px}.section-count{display:none}.flagship-layout{grid-template-columns:1fr;gap:37px}.flagship-image .main-image{aspect-ratio:1.16}.brand-panel{padding:23px 26px;bottom:25px;width:72%}.flagship-copy h3{font-size:32px}.flagship-copy p{font-size:14px}.flagship-actions{gap:20px}.flagship-actions .button{padding:16px 22px;font-size:13px}.brand-detail{font-size:12px}.services-intro{font-size:14px;margin-top:23px;max-width:440px}.service-row{grid-template-columns:28px 1fr 43px;gap:13px;padding:28px 0}.service-row h3,.service-row h2{font-size:32px}.service-row small{font-size:12px}.service-row p{grid-column:2;grid-row:2;font-size:14px;line-height:1.9}.service-row .round-plus{grid-column:3;grid-row:1/3;align-self:center;width:40px;height:40px;font-size:22px}.service-row:before{display:none}.vision{grid-template-columns:1fr;gap:0}.vision h2{font-size:36px}.vision .eyebrow{margin-bottom:24px}.vision-copy{padding-top:30px}.vision-copy p{font-size:14px}.vision-words{gap:16px;font-size:12px;margin-top:25px}.company-strip{grid-template-columns:1fr}.company-title{padding:40px var(--gutter) 0;border:0}.company-title h2{font-size:48px}.company-info{padding:24px var(--gutter) 40px}.company-info p{font-size:15px}.contact-section{padding:60px var(--gutter)}.contact-section h2{font-size:34px;margin-bottom:28px}.contact-choices{grid-template-columns:1fr}.contact-choice:first-child{padding:25px 0;border-right:0;border-bottom:1px solid #8b784849}.contact-choice:last-child{padding:25px 0 0}.contact-choice h3{font-size:17px}.contact-choice p{font-size:13px}.contact-choice .round-plus{width:43px;height:43px;flex-shrink:0;font-size:23px}.footer{padding-top:42px}.footer-top{flex-direction:column;gap:35px;margin-bottom:35px}.footer-brand img{width:180px}.footer-links{gap:16px 25px;font-size:13px}.footer-bottom{display:block;font-size:11px;padding-bottom:45px}.footer-bottom span{display:block;margin-top:10px}.motion-control{right:14px;bottom:calc(12px + env(safe-area-inset-bottom,0px));width:44px;height:44px;padding:0;border-radius:50%;line-height:0;letter-spacing:0;display:grid;place-items:center}.motion-control .mc-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.mc-icon{display:block;width:20px;height:20px}.page-intro{padding-top:26px;padding-bottom:47px}.breadcrumbs{font-size:12px;margin-bottom:43px;gap:10px}.breadcrumbs li+li:before{padding-right:10px}.page-intro h1{font-size:43px;line-height:1.45}.page-intro .lead{font-size:14px;margin-top:24px}.page-intro .eyebrow{font-size:12px}.page-intro .intro-num{font-size:115px;top:100px}.feature-image{height:320px}.feature-image>.brand-panel{width:230px;bottom:25px;padding:20px}.nessie-story{grid-template-columns:1fr;gap:35px}.nessie-story h2{font-size:32px}.nessie-story p{font-size:14px}.principles{grid-template-columns:1fr;gap:28px}.principle h3{font-size:24px;margin-top:20px}.service-detail-main{grid-template-columns:1fr;gap:35px}.side-heading h2{font-size:29px}.detail-item h3{font-size:21px}.detail-item p{font-size:14px}.detail-item span{margin-right:14px}.steps{grid-template-columns:1fr 1fr;gap:32px 24px}.step h3{font-size:17px;margin-top:18px}.step p{font-size:14px}.service-art{height:160px}.service-art .art-word{font-size:80px}.company-grid{grid-template-columns:1fr;gap:38px}.company-grid .statement{font-size:28px}.company-table>div{grid-template-columns:80px 1fr;gap:15px;font-size:14px;padding:23px 0}.contact-layout{grid-template-columns:1fr;gap:32px}.contact-aside{position:static}.contact-aside h2{font-size:22px;margin-top:14px}.contact-aside p{margin:12px 0 0}.contact-aside .nessie-contact{margin-top:20px;padding:18px 20px}.nessie-contact img{width:120px;margin-bottom:10px}.nessie-contact p{margin:0 0 10px;font-size:13px}.nessie-contact p br{display:none}.nessie-contact .text-link{font-size:12px;gap:12px}
.contact-intro{padding-bottom:34px}.contact-intro .breadcrumbs{margin-bottom:26px}.contact-intro h1{font-size:32px;line-height:1.4;letter-spacing:-.04em}.contact-intro .lead{margin-top:14px;line-height:1.9}.form-field{margin-bottom:23px}.form-field label{font-size:14px}.form-notice{padding:16px 20px;background:#e5e2d7;border-left:2px solid #a58a4b;font-size:14px;color:#3f3a2a;margin-bottom:30px;line-height:1.9}.form-notice a{text-decoration:underline}.field-hint{font-size:12px;color:#5d624d;margin-top:8px;line-height:1.7}.form-field .field-hint{margin-top:8px}.button[disabled]{opacity:.55;cursor:not-allowed}.privacy-date{margin-top:40px}.legal ul{margin:0;padding-left:1.4em;color:#666b59;line-height:2;font-size:14px}.legal section+section{margin-top:0}.consent{font-size:14px}.legal h2{font-size:24px}.legal p{font-size:14px}.thanks{padding-block:70px}.thanks h1{font-size:34px}.thanks p{font-size:14px}}
/* Motion preference also applies to the scrolling document. */
html:has(body.motion-off){scroll-behavior:auto}
@media(min-width:761px) and (max-width:1050px){.hero h1{font-size:clamp(43px,5.6vw,59px)}.hero-copy{max-width:330px}}

.services a:focus-visible,.services button:focus-visible,.light a:focus-visible,.contact-layout a:focus-visible,.contact-layout button:focus-visible,.contact-layout input:focus-visible,.contact-layout select:focus-visible,.contact-layout textarea:focus-visible,.principles a:focus-visible,.service-detail-main a:focus-visible,.company-grid a:focus-visible,.legal a:focus-visible{outline-color:#151614}.contact-section a:focus-visible{outline-color:#151614}
.hero-copy{word-break:auto-phrase;text-wrap:pretty}@media(max-width:760px){.hero-copy .desktop-break{display:none}}
.footer-bottom{padding-bottom:56px}
h1,h2,h3{text-wrap:balance;word-break:auto-phrase}p,li,dd,dt,small{text-wrap:pretty;word-break:auto-phrase}
@media(max-width:760px){.page-intro h1.h1-long{font-size:33px}
/* service detail H1: each phrase is an unbreakable unit (wraps between phrases only); the size tracks the viewport so the longest phrase (9 chars) always fits one line at 320-430px. Desktop keeps 80px (phrase units fit as before). */
.page-intro h1.h1-phrase .ph{display:inline-block}.page-intro h1.h1-phrase{font-size:clamp(30px,9.6vw,43px);letter-spacing:-.045em;line-height:1.4}}
.legal li+li{margin-top:6px}
.eyebrow .keep-case{text-transform:none}
.field-error{color:#8a1f11;font-size:13px;margin-top:8px;line-height:1.7}.form-field input[aria-invalid],.form-field select[aria-invalid],.form-field textarea[aria-invalid]{border-color:#8a1f11}
.hp{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* ==== Motion System (Corporate 2.0) ==== */
@keyframes hero-rise{from{opacity:0;transform:translateY(var(--m-hero-y))}to{opacity:1;transform:none}}
.hero-kicker,.hero-copy,.hero-main>.button,.hero-bottom{animation:hero-rise var(--m-cinematic) var(--ease-enter) both}
.hero-kicker{animation-delay:calc(var(--m-stagger)*2)}.hero-copy{animation-delay:calc(var(--m-stagger)*6)}.hero-main>.button{animation-delay:calc(var(--m-stagger)*7.5)}.hero-bottom{animation-delay:calc(var(--m-stagger)*9.5)}
.hero.is-offscreen:before{animation-play-state:paused}
.reveal-line{position:relative}.reveal-line:before{content:'';position:absolute;left:0;right:0;top:-1px;height:1px;background:currentColor;opacity:.35;transform:scaleX(0);transform-origin:left;transition:transform var(--m-slow) var(--ease-enter)}.reveal-line.seen:before{transform:scaleX(1)}
.service-list.reveal-line{border-top-color:transparent}.service-list.reveal-line:before{opacity:1;background:#c3c6b7}
.detail-list.reveal-line{border-top-color:transparent}.detail-list.reveal-line:before{opacity:1;background:#b9beab}
.service-list>.reveal:nth-child(2),.steps>.reveal:nth-child(2),.detail-list>.reveal:nth-child(2){--i:1}.service-list>.reveal:nth-child(3),.steps>.reveal:nth-child(3),.detail-list>.reveal:nth-child(3){--i:2}.service-list>.reveal:nth-child(4),.steps>.reveal:nth-child(4){--i:3}
.flagship-image .media{overflow:hidden;border-radius:3px}.flagship-image .main-image{transition:transform calc(var(--m-slow)*1.2) var(--ease-enter)}.ready .flagship-image.reveal:not(.seen) .main-image{transform:scale(var(--m-hover-scale))}
.flagship-layout:has(.flagship-actions a:hover,.flagship-actions a:focus-visible) .main-image{transform:scale(var(--m-hover-scale))}
.contact-choice h3,.related a{transition:transform var(--m-fast) var(--ease-standard),background var(--m-fast)}.contact-choice:hover h3,.contact-choice:focus-visible h3{transform:translateX(4px)}.contact-choice:hover .round-plus,.contact-choice:focus-visible .round-plus{transform:translateX(var(--m-arrow-x))}
@media(hover:none){.service-row h3,.contact-choice h3,.round-plus,.main-image{transition:none}.service-row:hover:before{opacity:0}.service-row:hover h3,.contact-choice:hover h3{transform:none}.service-row:hover .round-plus{transform:none;background:transparent;color:inherit}}
@supports (animation-timeline:scroll()){@media(min-width:761px){@keyframes hero-par-bg{to{transform:translateY(-24px)}}@keyframes hero-par-fg{to{transform:translateY(12px)}}.hero-photo{animation:hero-par-bg linear both;animation-timeline:scroll(root);animation-range:0 60vh}.hero-main{animation:hero-par-fg linear both;animation-timeline:scroll(root);animation-range:0 60vh}}}
/* ---- Phase C: page transitions (cross-document View Transitions; no SPA, falls back to a normal load) ---- */
@view-transition{navigation:auto}
@keyframes vt-out{to{opacity:0}}@keyframes vt-in{from{opacity:0}}
html{background:var(--ink)}::view-transition-old(root){animation:vt-out var(--m-fast) linear both}::view-transition-new(root){animation:vt-in var(--m-fast) linear both}
.header{view-transition-name:site-header}::view-transition-group(site-header){animation-duration:var(--m-normal);animation-timing-function:var(--ease-standard)}
html.motion-off::view-transition-group(*),html.motion-off::view-transition-old(root),html.motion-off::view-transition-new(root){animation-duration:0s!important}
/* ---- Phase C: official logo. Base state is the finished logo; the animation only supplies the start, so JS-off / motion-off / reduced-motion show the static logo ---- */
@keyframes logo-draw{from{stroke-dashoffset:1;stroke-opacity:1}to{stroke-dashoffset:0;stroke-opacity:1}}
@keyframes logo-fill{from{fill-opacity:0;stroke-opacity:1}to{fill-opacity:1;stroke-opacity:0}}
@keyframes logo-in{from{opacity:0}}
.brand-svg{overflow:visible;padding:2px 0}.brand-svg path{stroke:var(--gold);stroke-width:.85;stroke-linejoin:round;stroke-linecap:round;fill-opacity:1;stroke-opacity:0;stroke-dasharray:1;stroke-dashoffset:0;animation:logo-draw calc(var(--m-cinematic)*.7) var(--ease-standard) both,logo-fill calc(var(--m-cinematic)*.5) var(--ease-standard) calc(var(--m-cinematic)*.55) both}
.brand-svg .lg-word{animation-delay:calc(var(--m-cinematic)*.2),calc(var(--m-cinematic)*.75)}
.brand img{animation:logo-in var(--m-normal) var(--ease-enter) both}
/* ---- Phase C: menu dialog open transition (close stays instant; Escape / focus handling unchanged) ---- */
@keyframes dlg-in{from{opacity:0;transform:translateY(10px)}}@keyframes dlg-bd{from{opacity:0}}
.menu-dialog[open]{animation:dlg-in var(--m-normal) var(--ease-enter) both}.menu-dialog[open]::backdrop{animation:dlg-bd var(--m-normal) both}
@keyframes menu-item{from{opacity:0;transform:translateY(8px)}}@keyframes menu-x{from{transform:rotate(-45deg);opacity:0}}
.menu-dialog[open] .menu-nav a,.menu-dialog[open] .menu-foot{animation:menu-item var(--m-normal) var(--ease-enter) both}
.menu-dialog[open] .menu-nav a:nth-child(1){animation-delay:var(--m-stagger)}.menu-dialog[open] .menu-nav a:nth-child(2){animation-delay:calc(var(--m-stagger)*2)}.menu-dialog[open] .menu-nav a:nth-child(3){animation-delay:calc(var(--m-stagger)*3)}.menu-dialog[open] .menu-nav a:nth-child(4){animation-delay:calc(var(--m-stagger)*4.5)}.menu-dialog[open] .menu-foot{animation-delay:calc(var(--m-stagger)*6)}
.menu-dialog[open] .menu-close span{animation:menu-x var(--m-normal) var(--ease-enter) both}
@keyframes dlg-out{to{opacity:0;transform:translateY(6px)}}@keyframes dlg-bd-out{to{opacity:0}}@keyframes menu-item-out{to{opacity:0;transform:translateY(6px)}}
.menu-dialog[open].is-closing{animation:dlg-out var(--m-fast) var(--ease-exit) both}.menu-dialog[open].is-closing::backdrop{animation:dlg-bd-out var(--m-fast) var(--ease-exit) both}
.menu-dialog[open].is-closing .menu-nav a,.menu-dialog[open].is-closing .menu-foot{animation:menu-item-out var(--m-fast) var(--ease-exit) both;animation-delay:0s}.menu-dialog[open].is-closing .menu-close span{animation:none}
/* ---- Phase D: WebGL hero layer (inserted by JS only; absent = static design) ---- */
.hero-canvas{position:absolute;inset:0;z-index:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity var(--m-slow) var(--ease-standard)}.hero-canvas.is-ready{opacity:.5}.hero-canvas{-webkit-mask-image:linear-gradient(90deg,transparent 30%,#000 56%);mask-image:linear-gradient(90deg,transparent 30%,#000 56%)}
.hero-art{z-index:1}.hero-bottom{position:relative;z-index:1}
.motion-off .hero-canvas{display:none}
/* grid items must be allowed to shrink below their phrase-level min-content (320px /about/ overflow) */
.company-grid>*,.company-table>div>*{min-width:0}.company-table dd{overflow-wrap:anywhere}.company-grid .statement{overflow-wrap:anywhere}
/* ---- Image mask reveals (3 places: hero photo, flagship image, business feature image). clip-path only: no layout impact; unsupported => image simply visible ---- */
@supports (clip-path:inset(0 0 0 0)){
@keyframes photo-mask{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.hero-photo>img{animation:photo-in calc(var(--m-cinematic)*1.5) var(--ease-standard) both,photo-mask calc(var(--m-cinematic)*.9) var(--ease-enter) both}
.flagship-image .media{clip-path:inset(0 0 0 0 round 3px);transition:clip-path calc(var(--m-slow)*1.15) var(--ease-enter)}.ready .flagship-image.reveal:not(.seen) .media{clip-path:inset(0 100% 0 0 round 3px)}
.feature-image>img{animation:photo-mask calc(var(--m-cinematic)*.9) var(--ease-enter) both}
@media(max-width:760px){.flagship-image .media{transition-duration:var(--m-slow)}.hero-photo>img{animation-duration:calc(var(--m-cinematic)*1.2),calc(var(--m-cinematic)*.7)}}
}

/* ==== Corporate 2.1-A: /about/ (business list reuses .service-row; profile table; access with click-to-load map) ==== */
.about-business .service-row{grid-template-columns:65px 1.1fr 1fr 64px}.company-table dd .sub{display:block;font-size:12px;letter-spacing:.08em;color:#726d57;margin-top:2px}
.company-table dd a{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#b9beab}.company-table dd a:hover{text-decoration-color:currentColor}
.company-table.reveal-line:before{opacity:1;background:#bdc1af}.company-table.reveal-line>div:first-child{border-top-color:transparent}
.company-table>.reveal:nth-child(2){--i:1}.company-table>.reveal:nth-child(3){--i:2}.company-table>.reveal:nth-child(4){--i:3}.company-table>.reveal:nth-child(5){--i:4}
.access-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:6vw;align-items:start}.access-info .address{font-size:16px;line-height:2;color:#3f4337}.access-info .text-link{margin-top:26px;font-size:13px;gap:15px}
.map{position:relative;aspect-ratio:4/3;background:#e7e4d9;border:1px solid #c3c6b7;display:grid;place-items:center;overflow:hidden}.map iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.map-load{min-height:48px;padding:14px 24px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:2px;font-size:14px;display:grid;gap:4px;justify-items:center;transition:background var(--m-fast)}.map-load small{font-size:11px;color:#b4b4a9;letter-spacing:.04em}.map-load:hover{background:#30342a}
@media(max-width:760px){.about-business .service-row{grid-template-columns:28px 1fr 43px}.company-table>div{grid-template-columns:1fr;gap:6px;padding:18px 0}.company-table dt{font-size:12px;letter-spacing:.08em}.access-grid{grid-template-columns:1fr;gap:26px}.access-info .address{font-size:15px}.map{aspect-ratio:1/1}}
