@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700;900&display=swap');
:root{--ink:#171717;--accent:#f25f3a;--soft:#f4f1eb;--blue:#dbe7f4;--line:#d9d6d0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#fff;color:var(--ink);font-family:'DM Sans','Noto Sans JP',sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{max-width:100%}.header{height:82px;position:fixed;z-index:30;top:0;left:0;width:100%;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);border-bottom:1px solid rgba(0,0,0,.07)}.logo{font-size:13px;font-weight:800;line-height:.9;letter-spacing:-.04em}.logo span{display:block;font-size:20px}.logo i{color:var(--accent);font-size:8px;margin-left:5px}.header nav{display:flex;gap:28px;align-items:center;font-size:11px;font-weight:700}.nav-contact{background:var(--ink);color:#fff;padding:12px 20px}.menu{display:none}.hero{min-height:100svh;padding:140px 7vw 65px;display:grid;grid-template-columns:1.15fr .85fr;align-items:center;position:relative}.hero h1{font-size:clamp(54px,7.2vw,112px);line-height:1.06;letter-spacing:-.075em;margin:24px 0 32px}.hero h1 em{font-style:normal;color:var(--accent)}.kicker,.section-label{font-size:10px;letter-spacing:.18em;font-weight:700}.lead{font-size:15px;line-height:2}.button{display:inline-flex;align-items:center;gap:36px;padding:15px 18px 15px 25px;margin-top:23px;border:1px solid var(--ink);font-size:12px;font-weight:700;transition:.25s}.button span{display:grid;place-items:center;width:31px;height:31px;background:var(--ink);color:#fff}.button:hover{background:var(--ink);color:#fff}.button:hover span{background:var(--accent)}.hero-art{height:550px;position:relative;border-left:1px solid var(--line);overflow:hidden}.hero-art .shape{position:absolute}.shape-circle{width:380px;height:380px;border:1px solid var(--ink);border-radius:50%;right:-40px;top:30px;animation:drift 8s ease-in-out infinite}.shape-square{width:240px;height:240px;background:var(--accent);left:10%;bottom:25px;animation:drift 7s ease-in-out infinite reverse}.shape-line{height:1px;width:90%;background:var(--ink);left:5%;top:46%;transform:rotate(-19deg)}.hero-art>p{position:absolute;z-index:2;left:17%;top:29%;font-size:clamp(45px,6vw,90px);line-height:.78;font-weight:700;letter-spacing:-.08em;margin:0}.hero-art>p span{color:#fff}.hero-art>small{position:absolute;right:5%;bottom:4%;font-size:9px;letter-spacing:.18em}.scroll{position:absolute;bottom:22px;left:4vw;font-size:9px;letter-spacing:.18em}.scroll span{font-size:16px}.section{padding:130px 7vw;position:relative}.section-label{display:flex;align-items:center;gap:12px;margin-bottom:75px}.section-label span{display:grid;place-items:center;border:1px solid;width:30px;height:30px}.about{background:var(--soft)}.about-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:9vw}.about h2,.section-title h2,.contact h2{font-size:clamp(44px,5.8vw,84px);line-height:1.14;letter-spacing:-.065em;margin:0}.about-grid>div:first-child>p{max-width:650px;line-height:2}.big-copy{font-size:19px;font-weight:600;margin-top:45px}.about-card{background:#fff;padding:42px;position:relative;min-height:510px;border:1px solid var(--line)}.about-card>p{font-size:10px;letter-spacing:.16em;font-weight:700}.about-card ul{padding:0;margin:30px 0;list-style:none}.about-card li{display:flex;gap:22px;align-items:center;padding:22px 0;border-top:1px solid var(--line)}.about-card li b{color:var(--accent);font-size:11px}.about-card li span{font-size:16px;font-weight:600}.policy-mark{position:absolute;bottom:30px;right:30px;font-size:30px;font-weight:700;line-height:.85;letter-spacing:-.06em;color:#c9c5be;text-align:right}.section-title{display:grid;grid-template-columns:30% 70%;margin-bottom:70px}.section-title>p{font-size:13px;font-weight:600}.service-list article{display:grid;grid-template-columns:60px 1fr 1fr 40px;gap:25px;align-items:center;padding:38px 12px;border-top:1px solid var(--line)}.service-list article:last-child{border-bottom:1px solid var(--line)}.service-list article>b{font-size:11px;color:var(--accent)}.service-list h3{font-size:27px;margin:4px 0}.service-list div>p{margin:0;font-size:9px;letter-spacing:.16em}.service-list article>p{font-size:13px;line-height:1.8}.service-list article>span{font-size:24px}.works{background:var(--blue)}.works-grid{display:grid;grid-template-columns:1fr 1fr;gap:6vw}.work-image{height:560px;overflow:hidden;display:block;position:relative;background:#eee}.work-image img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .7s}.work-image:hover img{transform:scale(1.025)}.work-image span{position:absolute;right:0;bottom:0;background:#fff;padding:14px 19px;font-size:10px;font-weight:700}.work-card:nth-child(2){margin-top:100px}.work-card .tag{font-size:9px;letter-spacing:.14em;margin-top:24px}.work-card h3{font-size:32px;margin:7px 0}.work-card>p:not(.tag){line-height:1.9;font-size:13px}.text-link{display:inline-block;border-bottom:1px solid;padding:8px 0;font-size:12px;font-weight:700}.flow-list{list-style:none;margin:0 0 0 30%;padding:0}.flow-list li{display:grid;grid-template-columns:90px 1fr;padding:38px 0;border-top:1px solid var(--line)}.flow-list li>b{font-size:11px;color:var(--accent)}.flow-list h3{font-size:25px;margin:0 0 12px}.flow-list p{margin:0;max-width:600px;font-size:13px;line-height:1.9}.contact{min-height:720px;background:var(--accent);display:grid;place-items:center;text-align:center;overflow:hidden}.contact-box{position:relative;z-index:2}.contact-box>p:not(.kicker){line-height:2}.contact .button.dark{background:var(--ink);color:#fff;border-color:var(--ink)}.contact .button.dark span{background:#fff;color:var(--ink)}.contact-box small{display:block;margin-top:25px;font-size:9px}.contact-index{position:absolute;left:-.05em;bottom:-.25em;font-size:55vw;line-height:.8;font-weight:900;color:rgba(255,255,255,.13);letter-spacing:-.1em}.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}.reveal.visible{opacity:1;transform:none}footer{padding:85px 7vw 30px;background:var(--ink);color:#fff;display:grid;grid-template-columns:1.1fr 1fr .7fr;gap:7vw}footer>div>p{font-size:11px;line-height:1.9;margin-top:24px;color:#aaa}footer h3{font-size:11px;margin:0 0 20px}footer dl{display:grid;grid-template-columns:70px 1fr;font-size:10px;line-height:2.3;margin:0}footer dt{color:#888}.footer-links{display:flex;flex-direction:column;gap:13px;font-size:11px}.footer-links button{padding:0;background:none;border:0;color:#fff;text-align:left;font:inherit;cursor:pointer}.copyright{grid-column:1/-1;border-top:1px solid #3c3c3c;padding-top:25px;font-size:8px;letter-spacing:.14em}dialog{max-width:650px;border:0;padding:45px;box-shadow:0 25px 80px rgba(0,0,0,.22)}dialog::backdrop{background:rgba(0,0,0,.55)}dialog h2{font-size:24px}dialog p{font-size:12px;line-height:2}dialog button{float:right;border:0;background:var(--soft);width:35px;height:35px;font-size:20px;cursor:pointer}@keyframes drift{50%{transform:translate(12px,-10px) rotate(5deg)}}
@media(max-width:780px){.header{height:68px;padding:0 18px}.header nav{position:fixed;inset:68px 0 auto;background:#fff;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:14px 18px 25px;border-bottom:1px solid var(--line);transform:translateY(-130%);transition:.3s}.header nav.open{transform:none}.header nav a{padding:14px;border-bottom:1px solid var(--line)}.nav-contact{text-align:center;margin-top:10px}.menu{display:block;border:1px solid;background:#fff;padding:9px 14px;font-size:9px;font-weight:700}.hero{padding:110px 20px 55px;display:block;min-height:820px}.hero h1{font-size:14vw}.hero-art{height:320px;margin-top:25px;border-left:0;border-top:1px solid var(--line)}.shape-circle{width:240px;height:240px}.shape-square{width:150px;height:150px}.hero-art>p{font-size:15vw;top:30%;left:8%}.section{padding:90px 20px}.section-label{margin-bottom:50px}.about-grid{display:block}.about-card{margin-top:55px;padding:28px;min-height:430px}.section-title{display:block}.section-title>p{margin-bottom:25px}.service-list article{grid-template-columns:40px 1fr 28px;padding:28px 0}.service-list article>p{grid-column:2}.service-list h3{font-size:20px}.works-grid{display:block}.work-card:nth-child(2){margin-top:75px}.work-image{height:450px}.flow-list{margin:0}.contact{min-height:650px}.contact-box{padding-bottom:30px}footer{display:block;padding:65px 20px 25px}footer>div{margin-bottom:50px}.copyright{padding-top:25px}.logo span{font-size:18px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.shape{animation:none}.reveal{opacity:1;transform:none;transition:none}}
