:root{--ink:#101010;--paper:#f4f3f0;--line:#d4d2cc;--muted:#6e6d69;--accent:#b9aa86}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Helvetica Neue","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif;line-height:1.8}a{color:inherit;text-decoration:none}.header{position:fixed;z-index:20;top:0;left:0;width:100%;height:82px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;color:white;border-bottom:1px solid #ffffff33;transition:.3s}.header.scrolled{background:#101010ed;backdrop-filter:blur(10px)}.wordmark{font-family:Arial,sans-serif;font-size:1.65rem;font-weight:800;letter-spacing:.04em}.wordmark span{font-size:.62rem;font-weight:500;margin-left:.6rem;letter-spacing:.08em}.header nav{display:flex;gap:2rem;font-size:.78rem;letter-spacing:.08em}.header nav a{opacity:.78}.header nav a:hover{opacity:1}.menu{display:none;background:none;color:white;border:0;font-size:.75rem;letter-spacing:.12em}.hero{height:100svh;min-height:620px;position:relative;display:flex;align-items:center;overflow:hidden;background:#111;color:white}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,#0b0d0fe8 0%,#111a 44%,transparent 76%)}.hero-copy{position:relative;z-index:2;margin-left:9vw}.eyebrow,.section-no{font-size:.72rem;letter-spacing:.2em;font-weight:600}.hero h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500;font-size:clamp(3.4rem,7.6vw,7.6rem);line-height:1.25;letter-spacing:.06em;margin:1.5rem 0}.hero-copy>p:last-child{font-size:1rem;letter-spacing:.1em}.scroll{position:absolute;z-index:2;right:4vw;bottom:3rem;font-size:.67rem;letter-spacing:.18em}.scroll span{margin-left:.8rem}.section{padding:9rem 9vw}.section-no{color:var(--muted);margin:0 0 5rem}.intro{display:grid;grid-template-columns:28% 1fr}.intro>div{max-width:720px}.intro h2,.company h2,.contact h2{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(2.4rem,4.5vw,4.5rem);font-weight:500;line-height:1.45;letter-spacing:.06em;margin:0 0 2.5rem}.intro>div p{max-width:610px;font-size:1.04rem}.dark{background:#121212;color:#eee}.dark .section-no{color:#888}.business-head{display:grid;grid-template-columns:45% 1fr;align-items:end;margin-bottom:5rem}.business-head h2{font-size:clamp(2.6rem,5vw,5rem);font-weight:500;margin:0}.business-head p{color:#aaa;max-width:500px}.business-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #444}.business-grid article{padding:2.5rem 2rem 1rem 0;border-right:1px solid #444;margin-right:2rem}.business-grid article:last-child{border:0}.business-grid span{font-size:.7rem;color:var(--accent)}.business-grid h3{font-size:1.15rem;margin:2.5rem 0 1rem}.business-grid p{font-size:.88rem;color:#aaa}.brands{padding-bottom:11rem}.brand-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.brand-grid article{padding:5rem 4vw}.brand-grid article:first-child{border-right:1px solid var(--line)}.brand-grid article>p:first-child{font-size:.68rem;letter-spacing:.18em;color:var(--muted)}.brand-grid h2{font-size:clamp(3.5rem,7vw,7.5rem);margin:1.8rem 0;line-height:1}.brand-grid h2 span{color:var(--accent)}.brand-grid article>p:last-child{color:var(--muted)}.company{background:#eae9e5;display:grid;grid-template-columns:28% 1fr}.company>div{max-width:760px}.company dl{margin:0;border-top:1px solid #aaa}.company dl div{display:grid;grid-template-columns:30% 1fr;border-bottom:1px solid #c4c2bc;padding:1.3rem 0}.company dt{color:var(--muted);font-size:.86rem}.company dd{margin:0}.mobile{display:none}.contact{padding:9rem 9vw;background:var(--accent);display:grid;grid-template-columns:28% 1fr}.contact .section-no{color:#504a3d}.contact>div{max-width:760px}.contact p{margin-bottom:3rem}.mail{display:flex;justify-content:space-between;align-items:center;font-size:clamp(1.25rem,3vw,2.2rem);border-bottom:1px solid #302d26;padding:1rem 0}.mail span{font-size:1rem}footer{background:#101010;color:white;padding:4rem 4vw;display:flex;align-items:end;justify-content:space-between}footer p{font-size:.7rem;color:#888;letter-spacing:.08em}
@media(max-width:800px){.header{height:68px;padding:0 5vw}.menu{display:block}.header nav{display:none;position:absolute;top:68px;left:0;width:100%;padding:1.5rem 5vw 2rem;background:#101010;flex-direction:column;gap:1.1rem}.header nav.open{display:flex}.hero{min-height:580px}.hero-shade{background:linear-gradient(90deg,#0b0d0fe8 0%,#111b 63%,#1113)}.hero>img{object-position:62% center}.hero-copy{margin:6rem 7vw 0}.hero h1{font-size:3.6rem}.hero-copy>p:last-child{font-size:.87rem}.scroll{right:6vw}.section{padding:6.5rem 7vw}.section-no{margin-bottom:3.5rem}.intro,.company,.contact{display:block}.intro h2,.company h2,.contact h2{font-size:2.45rem}.business-head{display:block}.business-head p{margin-top:1.5rem}.business-grid{grid-template-columns:1fr 1fr}.business-grid article{margin-right:1rem}.business-grid article:nth-child(2){border-right:0}.brand-grid{grid-template-columns:1fr}.brand-grid article{padding:3.5rem 0}.brand-grid article:first-child{border-right:0;border-bottom:1px solid var(--line)}.brand-grid h2{font-size:4rem}.company .section-no,.contact .section-no{margin-bottom:3.5rem}.company dl div{grid-template-columns:32% 1fr;gap:1rem}.mobile{display:block}footer{padding:3rem 6vw}}
@media(max-width:480px){.hero h1{font-size:3rem}.business-grid{grid-template-columns:1fr}.business-grid article{border-right:0;border-bottom:1px solid #444;margin:0;padding:2.2rem 0}.company dl div{grid-template-columns:1fr}.company dt{margin-bottom:.25rem}}
.intro-content{max-width:820px!important}.intro-content>p{max-width:610px}.mascot{margin:4.5rem 0 0;display:grid;grid-template-columns:minmax(180px,280px) 1fr;align-items:end;gap:2rem}.mascot img{display:block;width:100%;aspect-ratio:744/1400;object-fit:cover;background:#fff}.mascot figcaption{font-size:.68rem;letter-spacing:.18em;color:var(--muted);padding-bottom:1rem}.brand-logo{height:230px;margin:1.8rem 0;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}.brand-logo img{display:block;width:100%;height:100%;object-fit:contain}
@media(min-width:801px){.business-grid{grid-template-columns:repeat(3,1fr)}.business-grid article{padding-bottom:2.5rem;border-bottom:1px solid #444}.business-grid article:nth-child(3){border-right:0}.business-grid article:nth-child(n+4){border-bottom:0}}
@media(max-width:800px){.brand-logo{height:190px}.mascot{grid-template-columns:minmax(150px,230px) 1fr}}
@media(max-width:480px){.mascot{grid-template-columns:1fr}.mascot img{max-width:210px}.brand-logo{height:155px}}
.mascot img{aspect-ratio:1100/1430;object-fit:contain;background:transparent}.brand-logo{height:200px;background:transparent}.brand-logo img{width:88%;height:88%}.brand-grid article:nth-child(2) .brand-logo img{width:74%;height:74%}.contact-button{display:inline-flex;align-items:center;justify-content:space-between;gap:4rem;min-width:320px;padding:1.05rem 1.4rem;border:1px solid #302d26;font-weight:600;letter-spacing:.08em;transition:.25s}.contact-button:hover{background:#101010;color:#fff;border-color:#101010}.contact-button span{font-size:1.1rem}
@media(max-width:800px){.brand-logo{height:170px}.contact-button{min-width:min(100%,320px)}}

/* Subtle moving light across the hero artwork. */
.hero::after{content:"";position:absolute;z-index:1;inset:-18%;pointer-events:none;background:linear-gradient(112deg,transparent 30%,rgba(255,255,255,.02) 40%,rgba(255,255,255,.13) 49%,rgba(255,255,255,.025) 57%,transparent 68%);mix-blend-mode:screen;transform:translate3d(-28%,0,0) rotate(-2deg);animation:hero-light-drift 14s ease-in-out infinite alternate}
@keyframes hero-light-drift{0%{transform:translate3d(-28%,0,0) rotate(-2deg);opacity:.42}45%{opacity:.8}100%{transform:translate3d(28%,0,0) rotate(2deg);opacity:.52}}
@media(prefers-reduced-motion:reduce){.hero::after{animation:none;transform:translate3d(0,0,0);opacity:.35}}

/* Editorial motion and interaction system. */
.header nav a{position:relative;padding:.4rem 0}.header nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .45s cubic-bezier(.2,.7,.2,1)}.header nav a:hover::after,.header nav a:focus-visible::after,.header nav a.active::after{transform:scaleX(1);transform-origin:left}.header nav a.active{opacity:1}
.hero>img{animation:hero-depth 20s ease-in-out infinite alternate;transform-origin:62% 50%;will-change:transform,filter}@keyframes hero-depth{0%{transform:scale(1.015);filter:brightness(.94) contrast(1.02)}100%{transform:scale(1.065);filter:brightness(1.04) contrast(1.06)}}
.section-no{position:relative;display:inline-flex;align-items:center;gap:1rem}.section-no::after{content:"";width:clamp(42px,5vw,76px);height:1px;background:currentColor;opacity:.45;transform:scaleX(.35);transform-origin:left;transition:transform 1.1s cubic-bezier(.2,.7,.2,1)}.section-no.is-visible::after{transform:scaleX(1)}
.js .reveal{opacity:0;transform:translate3d(0,24px,0);transition:opacity .9s ease var(--reveal-delay,0ms),transform .9s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}.js .reveal.is-visible{opacity:1;transform:translate3d(0,0,0)}
.mascot img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1),filter 1.2s ease}.mascot:hover img{transform:translateY(-5px) scale(1.015);filter:drop-shadow(0 18px 24px rgba(0,0,0,.09))}
.brand-logo img{transition:transform .9s cubic-bezier(.2,.7,.2,1),opacity .9s ease,filter .9s ease}.brand-grid article:hover .brand-logo img{transform:scale(1.025);opacity:.84;filter:drop-shadow(0 10px 18px rgba(0,0,0,.08))}
.contact-button{position:relative;overflow:hidden}.contact-button::before{content:"";position:absolute;inset:0;background:#101010;transform:translateX(-102%);transition:transform .55s cubic-bezier(.2,.7,.2,1)}.contact-button>*{position:relative;z-index:1}.contact-button:hover,.contact-button:focus-visible{color:#fff;border-color:#101010;background:transparent}.contact-button:hover::before,.contact-button:focus-visible::before{transform:translateX(0)}.contact-button .button-label{font-size:inherit}.contact-button .button-arrow{font-size:1.1rem;transition:transform .45s ease}.contact-button:hover .button-arrow,.contact-button:focus-visible .button-arrow{transform:translateX(6px)}
footer{display:block;overflow:hidden;padding:2.5rem 4vw 3rem}.footer-statement{margin:0 0 1.5rem;font-family:Arial,sans-serif;font-size:clamp(8rem,25vw,25rem);font-weight:900;line-height:.72;letter-spacing:-.075em;color:#f5f5f2;white-space:nowrap}.footer-meta{display:flex;align-items:flex-end;justify-content:space-between;border-top:1px solid #ffffff26;padding-top:2rem}.footer-meta>p{font-size:.7rem;color:#888;letter-spacing:.08em;margin:0}
@media(max-width:800px){.header nav a::after{right:auto;width:44px}.footer-statement{font-size:clamp(7.5rem,39vw,14rem);margin-bottom:1.25rem}.footer-meta{padding-top:1.5rem}.js .reveal{transform:translate3d(0,18px,0)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero>img{animation:none;transform:none}.js .reveal{opacity:1;transform:none;transition:none}.section-no::after{transform:scaleX(1);transition:none}.mascot img,.brand-logo img,.contact-button::before,.contact-button span{transition:none}}

/* Keyboard navigation and visible focus. */
.skip-link{position:fixed;z-index:100;top:1rem;left:1rem;padding:.7rem 1rem;background:#fff;color:#101010;border:2px solid #101010;transform:translateY(-180%);transition:transform .2s ease}.skip-link:focus{transform:translateY(0)}:focus-visible{outline:2px solid currentColor;outline-offset:4px}#main-content:focus{outline:none}

/* Back-to-top control. */
.back-to-top{position:fixed;z-index:18;right:2rem;bottom:2rem;width:58px;height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;border:1px solid #ffffff42;border-radius:50%;background:#101010e8;color:#fff;backdrop-filter:blur(8px);font-size:.55rem;line-height:1.2;letter-spacing:.12em;opacity:0;visibility:hidden;transform:translateY(12px);transition:opacity .35s ease,transform .35s ease,visibility .35s ease,background .3s ease,color .3s ease}.back-to-top span:first-child{font-size:1rem;line-height:1;margin-bottom:.15rem}.back-to-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}.back-to-top:hover,.back-to-top:focus-visible{background:var(--accent);color:#101010;border-color:var(--accent)}

/* Custom 404 page. */
.error-page{min-height:100svh;background:#101010;color:#fff;display:grid;place-items:center;overflow:hidden}.error-page::before{content:"404";position:fixed;inset:auto -2vw -10vw;z-index:0;font-family:Arial,sans-serif;font-size:clamp(18rem,52vw,52rem);font-weight:900;line-height:.72;letter-spacing:-.09em;color:#ffffff08;pointer-events:none}.error-content{position:relative;z-index:1;width:min(820px,86vw);padding:7rem 0}.error-code{margin:0 0 2rem;color:var(--accent);font-size:.72rem;font-weight:600;letter-spacing:.24em}.error-content h1{margin:0 0 2rem;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-size:clamp(3rem,7vw,6.5rem);font-weight:500;line-height:1.3;letter-spacing:.06em}.error-content>p:not(.error-code){max-width:560px;color:#aaa}.error-home{display:inline-flex;align-items:center;justify-content:space-between;gap:4rem;min-width:300px;margin-top:2.5rem;padding:1rem 1.3rem;border:1px solid #ffffff66;transition:background .3s ease,color .3s ease,border-color .3s ease}.error-home:hover,.error-home:focus-visible{background:#fff;color:#101010;border-color:#fff}
@media(max-width:800px){.back-to-top{right:1.2rem;bottom:1.2rem;width:52px;height:52px}.error-content{padding:5rem 0}.error-home{min-width:min(100%,300px)}}
@media(prefers-reduced-motion:reduce){.back-to-top{transition:none}}
