:root{--ink:#302f2c;--paper:#fbf8fa;--brand:#dfbad1;--brand-ink:#784d68;--line:#e3d4dd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Gothic",Meiryo,sans-serif;font-size:14px;line-height:1.9}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}a,button,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--brand-ink);outline-offset:5px}.concept{height:27px;background:#dfbad1;text-align:center;font-size:9px;letter-spacing:2px;line-height:27px}.concept span{margin-left:18px;letter-spacing:1px}header{height:98px;padding:0 4.4%;display:flex;align-items:center;gap:35px;border-bottom:1px solid var(--line);background:var(--paper);position:relative;z-index:3}.logo{margin-right:auto}.logo-crop{width:174px;height:62px;overflow:hidden;position:relative;mix-blend-mode:multiply}.logo-crop img{position:absolute;width:219px;max-width:none;top:-35px;left:-23px}nav{display:flex;gap:30px;font-size:12px;font-weight:600}nav a:hover{color:var(--brand-ink)}.header-contact{padding:12px 20px;border:1px solid var(--ink);font-size:12px}.header-contact span{margin-left:25px}.menu{display:none}.hero{display:grid;grid-template-columns:51% 49%;min-height:640px}.hero-copy{padding:76px 8.6% 25px}.eyebrow{font-family:Arial,sans-serif;font-size:10px;letter-spacing:2.1px;font-weight:500;line-height:1.5}.eyebrow>span{display:inline-block;width:18px;height:1px;background:var(--brand-ink);margin:0 10px 3px 0}h1,h2,h3,.lead{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;font-weight:500}h1{font-size:clamp(48px,5.1vw,79px);letter-spacing:.055em;line-height:1.5;margin:40px 0 25px;white-space:nowrap}.accent{position:relative}.accent:after{content:"";position:absolute;bottom:-7px;left:2%;width:95%;height:10px;border-top:1px solid var(--brand-ink);border-radius:50%;transform:rotate(-4deg)}.hero-description{font-size:15px;line-height:2.1;letter-spacing:2px;margin-bottom:31px}.button{display:inline-flex;align-items:center;justify-content:space-between;min-width:245px;gap:35px;padding:17px 24px;border:0;font-size:13px;transition:background .2s,transform .2s}.button:hover{transform:translateY(-2px)}.dark{background:var(--ink);color:white}.dark:hover{background:var(--brand-ink)}.hero-bottom{display:flex;align-items:center;justify-content:space-between;font-size:10px;margin-top:53px;gap:10px}.hero-bottom>a{font-size:9px;letter-spacing:2px}.hero-art{position:relative;overflow:hidden;background:#dfbad1;min-height:640px}.hero-art>svg{position:absolute;width:100%;height:100%}.art-top{position:absolute;right:42px;top:42px;writing-mode:vertical-rl;color:#39352f;font-family:"Yu Mincho",serif;font-size:16px;letter-spacing:5px;line-height:2.5}.art-bottom{position:absolute;bottom:30px;left:32px;right:32px;color:#49443e;display:flex;justify-content:space-between;align-items:end;gap:10px;font-size:10px;letter-spacing:2px}.art-bottom small{font-size:7px;letter-spacing:1px}.section{padding:100px 7.5%}h2{font-size:37px;letter-spacing:3px;line-height:1.65;margin:25px 0}p{margin:0 0 20px}.about{display:grid;grid-template-columns:1.05fr 1fr .65fr;gap:45px;align-items:center}.about-text{padding-top:30px;font-size:13px;line-height:2.2}.lead{font-size:24px;letter-spacing:2px;line-height:1.8}.text-link{display:flex;justify-content:space-between;border-bottom:1px solid var(--ink);padding:15px 0;max-width:220px;font-size:12px}.years{border-left:1px solid var(--line);text-align:center;padding:25px 10px}.years>span{display:block;font-family:"Yu Mincho",serif;letter-spacing:3px}.years strong{font-family:Georgia,serif;display:block;font-size:106px;font-weight:400;line-height:1.2;color:#925d7e}.years small{display:block;font-size:7px;letter-spacing:1.5px;margin-top:20px}.problems{background:#f5edf2;padding-top:75px;padding-bottom:80px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:40px}.section-heading h2{margin-bottom:0}.section-heading>p{font-size:12px;line-height:2.1;margin-bottom:6px}.problem-grid{display:grid;grid-template-columns:repeat(3,1fr)}.problem-grid>a{position:relative;padding:28px 30px;border-left:1px solid #dfccd7}.problem-grid>a:last-child{border-right:1px solid #dfccd7}.problem-grid>a:hover{background:#ecdae5}.problem-grid span{font-family:Georgia,serif;font-size:15px;color:var(--brand-ink)}h3{font-size:23px;line-height:1.8;letter-spacing:1px;margin:18px 0}.problem-grid p{font-size:11px;margin:20px 0 0}.problem-grid b{position:absolute;right:25px;bottom:25px;font-size:20px;font-weight:400;color:var(--brand-ink)}.mobile{display:none}.tech-list{border-top:1px solid var(--line);margin-top:55px}.tech-list details{border-bottom:1px solid var(--line);padding:27px 0}.tech-list summary{display:flex;align-items:center;gap:32px;cursor:pointer;list-style:none}.tech-list summary::-webkit-details-marker{display:none}.number{font-family:Georgia,serif;font-size:26px;color:var(--brand-ink);width:55px}.tech-list small{font-size:9px;letter-spacing:1.7px;color:#756f67}.tech-list h3{margin:3px 0 0;font-size:25px}.plus{margin-left:auto;border:1px solid var(--line);border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-size:20px;font-weight:300}.tech-list details[open] .plus{transform:rotate(45deg)}.tech-body{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;padding:22px 0 10px 87px;font-size:12px;max-width:1020px}.tech-body p{margin:0}.tag{display:inline-block;border:1px solid var(--line);padding:2px 12px;margin:0 6px 10px 0;font-size:10px}.tech-body a{display:block;color:var(--brand-ink);margin-top:5px}.note{font-size:10px;color:#756f67;margin-top:22px}.process{background:#f0e3eb}.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:55px}.process-grid article>span{font-size:10px;letter-spacing:2px;color:var(--brand-ink)}.drawing{height:170px;margin:20px 0;background:#faf5f8;display:grid;place-items:center}.drawing svg{width:220px;height:140px;stroke:#8b627c;fill:none;stroke-width:1}.process-grid h3{font-size:21px}.process-grid p{font-size:12px;line-height:2}.case-note{border-top:1px solid #dfccd7;margin-top:40px;padding-top:25px;display:flex;gap:35px;font-size:11px}.case-note span{white-space:nowrap}.case-note p{margin:0;color:#6f685f}.company{display:grid;grid-template-columns:1fr 1fr;gap:70px}.company p{font-size:13px;line-height:2.2}.company dl{padding-top:30px}.company dl>div{display:grid;grid-template-columns:120px 1fr;border-bottom:1px solid var(--line);padding:20px 0;font-size:12px}.company dt{color:#756f67}.company dd{margin:0}.contact{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;gap:60px;background:var(--brand);color:var(--ink);position:relative;overflow:hidden}.contact:after{content:"";position:absolute;width:800px;height:450px;border:1px solid #784d6828;border-radius:50%;left:30%;top:30%;transform:rotate(-22deg);pointer-events:none}.contact .eyebrow{color:#784d68}.contact h2{font-size:36px}.contact p{font-size:12px;line-height:2.2}.light{background:var(--paper);color:var(--ink);width:100%}.contact-action>p{font-size:10px;margin:16px 0 35px;opacity:.75}.individual{border:0;border-bottom:1px solid #a38195;background:transparent;color:inherit;padding:0 0 10px;font-size:11px}.contact-action{position:relative;z-index:1}footer{padding:50px 7.5% 25px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px}.footer-brand{font-family:Georgia,serif;letter-spacing:3px;font-size:35px}.footer-brand span{font-family:"Yu Mincho",serif;font-size:17px;margin-left:15px}footer p{font-size:11px;grid-row:2}footer>a{grid-column:2;grid-row:1;font-size:9px;letter-spacing:2px}footer small{border-top:1px solid var(--line);grid-column:1/-1;font-size:9px;padding-top:20px;display:flex;justify-content:space-between;color:#787168}dialog{width:min(600px,90vw);border:0;background:var(--paper);color:var(--ink);padding:45px;max-height:85vh}dialog::backdrop{background:#282521ab}dialog h2{font-size:26px}dialog p,dialog li{font-size:13px}dialog .close{position:absolute;top:12px;right:20px;border:0;background:none;font-size:28px}.close-bottom{margin-top:15px}.dialog-note{background:#f0e3eb;padding:15px}.menu{border:0;background:none;font-size:24px}@media(min-width:1600px){main,header,footer{max-width:1700px;margin:auto}}@media(max-width:1100px){header{gap:20px}nav{gap:18px;font-size:11px}.hero-copy{padding-top:60px}.hero-art,.hero{min-height:600px}.hero-bottom{font-size:9px}.about{gap:25px;grid-template-columns:1fr 1fr}.years{display:none}.section{padding:80px 6%}.company{gap:40px}.contact h2{font-size:30px}.art-bottom{flex-direction:column;align-items:start}.hero h1{font-size:5.5vw}}@media(max-width:760px){header{height:80px;padding:0 5%;gap:15px}.logo-crop{width:135px;height:49px}.logo-crop img{width:174px;left:-19px;top:-28px}.header-contact{font-size:10px;padding:9px 10px}.header-contact span{margin-left:10px}.menu{display:block}nav{display:none;position:absolute;left:0;right:0;top:80px;padding:25px;background:var(--paper);box-shadow:0 12px 20px #302f2c15}nav.open{display:flex;flex-direction:column;gap:22px}.hero{grid-template-columns:1fr}.hero-copy{padding:43px 7% 26px}.hero .eyebrow{font-size:8px;letter-spacing:1.4px}.hero h1{font-size:clamp(43px,9.7vw,64px);margin:27px 0 22px}.hero-description{font-size:13px}.hero-bottom{margin-top:30px}.hero-art{min-height:380px}.hero-art>svg{object-position:center}.art-top{font-size:13px;top:30px;right:26px}.art-bottom{flex-direction:row;align-items:center;left:24px;right:24px}.art-bottom span{font-size:8px}.section{padding:60px 7%}.about{grid-template-columns:1fr;gap:10px}h2{font-size:29px;letter-spacing:2px;margin:20px 0}.about-text{padding:0}.lead{font-size:22px}.section-heading{display:block;margin-bottom:30px}.section-heading>p{margin-top:20px}.problem-grid{grid-template-columns:1fr}.problem-grid>a{padding:24px 15px 24px 45px;border:0;border-top:1px solid #dfccd7}.problem-grid>a:last-child{border-right:0;border-bottom:1px solid #dfccd7}.problem-grid span{position:absolute;left:0;top:28px}.problem-grid h3{font-size:22px;margin:0}.problem-grid p{margin-top:10px}.mobile{display:block}.tech-list{margin-top:30px}.tech-list summary{gap:10px}.number{font-size:20px;width:30px}.tech-list h3{font-size:20px}.tech-list small{font-size:7px;letter-spacing:1px}.plus{width:30px;height:30px;font-size:16px;flex-shrink:0}.tech-body{display:block;padding:20px 0 5px 40px}.tech-body>div{margin-top:18px}.process-grid{grid-template-columns:1fr;gap:30px;margin-top:35px}.drawing{height:170px}.process-grid h3{margin:15px 0}.process-grid p{margin:0}.case-note{display:block;margin-top:30px}.case-note p{margin-top:10px}.company{grid-template-columns:1fr;gap:15px}.company dl{padding:0;margin:0}.company dl>div{grid-template-columns:100px 1fr}.contact{grid-template-columns:1fr;gap:20px}.contact h2{font-size:27px;letter-spacing:1px}.contact-action>p{margin-bottom:25px}footer{padding:35px 7% 25px}.footer-brand{font-size:28px}footer p{font-size:9px}.concept{font-size:7px;letter-spacing:1px}.concept span{font-size:8px;margin-left:10px}dialog{padding:35px 25px}dialog h2{font-size:23px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}


/* Full-width hero: the background layer can also contain a video. */
main{max-width:none}
.hero{position:relative;isolation:isolate;display:flex;align-items:center;width:100%;min-height:680px;min-height:max(680px,calc(100svh - 125px));overflow:hidden}
.hero-art{position:absolute;inset:0;z-index:0;min-height:0;pointer-events:none}
.hero-art>svg,.hero-art>video,.hero-art>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}
.hero-art:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(251,248,250,.94) 0%,rgba(251,248,250,.78) 32%,rgba(251,248,250,.18) 65%,rgba(251,248,250,.04) 100%)}
.hero-copy{position:relative;z-index:1;width:100%;padding:70px 7.5% 90px}
.hero h1{font-size:clamp(52px,5.1vw,79px)}
.hero-description{max-width:500px}
.hero-bottom{max-width:520px;margin-top:50px}
.art-top{z-index:1;right:7.5%;top:65px}
.art-bottom{z-index:1;left:auto;right:7.5%;bottom:30px;align-items:flex-end;flex-direction:column}
@media(min-width:1700px){main>.section{padding-left:max(7.5%,calc((100% - 1445px)/2));padding-right:max(7.5%,calc((100% - 1445px)/2))}}
@media(max-width:760px){
.hero{min-height:620px;min-height:max(620px,calc(100svh - 107px))}
.hero-copy{padding:55px 7% 95px}
.hero h1{font-size:clamp(43px,9.7vw,64px)}
.hero-art{min-height:0}
.hero-art:after{background:linear-gradient(90deg,rgba(251,248,250,.92),rgba(251,248,250,.64) 65%,rgba(251,248,250,.35))}
.art-top{display:none}
.art-bottom{left:7%;right:7%;bottom:22px;flex-direction:row;align-items:center}
.hero-bottom{margin-top:38px;max-width:440px}
}

/* Brand surfaces use the supplied color; text uses its darker companion. */
.header-contact{background:var(--brand);border-color:var(--brand);color:var(--ink)}
.header-contact:hover{background:#d4aac4;border-color:#d4aac4}
.contact .light{background:var(--ink);color:#fff}
.contact .light:hover{background:var(--brand-ink)}

/* Celadon complements: restrained accents alongside the pink primary. */
:root{--celadon-surface:#7ebeab;--celadon-line:#5fa894;--celadon-text:#2f5d50;--celadon-muted:#6f8a80}
.eyebrow,.contact .eyebrow,.tech-list small,.process-grid article>span{color:var(--celadon-text)}
.eyebrow>span{background:var(--celadon-line)}
.accent:after,.text-link{border-color:var(--celadon-line)}
.problem-grid b,.text-link>span,.header-contact>span{color:var(--celadon-line)}
.plus{color:var(--celadon-text);border-color:var(--celadon-line)}
.drawing svg{stroke:var(--celadon-line)}
.tag{border-color:var(--celadon-surface);color:var(--celadon-text)}
.dark>span,.contact .light>span{color:var(--celadon-surface)}
.art-bottom small,.years small{color:var(--celadon-muted)}
.art-bottom small{background:var(--paper);padding:3px 7px}
/* Reserved for news entries and labels when those contents are supplied. */
.news-tag{border:1px solid var(--celadon-surface);color:var(--celadon-text)}
.news-date{color:var(--celadon-text)}
.ink-band .label{background:var(--celadon-surface);color:var(--ink)}


