:root{--color-text:#1a1a1a;--color-muted:#666;--color-bg:#fff;--color-bg-soft:#f6f6f4;--color-border:#e2e2e2;--color-ink:#000;--accent-yellow:#fff799;--accent-pink:#ff99b8;--accent-cyan:#99f9ff;--gradient:linear-gradient(90deg, var(--accent-cyan), var(--accent-yellow), var(--accent-pink));--font-base:"Noto Sans JP", system-ui, sans-serif;--font-display:"Outfit", "Noto Sans JP", sans-serif;--container:1160px;--gutter:16px;--header-h:72px;--radius:12px}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-base);letter-spacing:.04em;-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.9;overflow-x:hidden}img{max-width:100%;height:auto;display:block}a{color:inherit}.container{width:100%;max-width:var(--container);padding-inline:var(--gutter);margin-inline:auto}.container--narrow{max-width:820px}.section{padding-block:clamp(56px,9vw,112px)}.section__more{text-align:center;margin-top:40px}.section-title{font-family:var(--font-display);text-align:center;margin:0 0 40px;font-size:clamp(28px,4.5vw,44px);line-height:1.3}.section-title span{font-family:var(--font-base);color:var(--color-muted);margin-top:12px;font-size:14px;font-weight:400;display:block}.button{border:1px solid var(--color-ink);background:var(--color-bg);min-height:48px;color:var(--color-ink);border-radius:999px;justify-content:center;align-items:center;padding:10px 32px;font-size:15px;font-weight:700;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.button:hover{background:var(--color-ink);color:#fff}.button--accent{background:var(--gradient);border-color:#0000}.button--accent:hover{background:var(--color-ink)}.button--solid{background:var(--color-ink);color:#fff}.button--solid:hover{color:var(--color-ink);background:#fff}.button--large{width:min(100%,300px);min-height:70px;font-size:16px}.button--ghost{color:#fff;background:0 0;border-color:#fff}.button--ghost:hover{color:var(--color-ink);background:#fff}.site-header{z-index:50;backdrop-filter:blur(8px);box-shadow:0 1px 0 var(--color-border);background:#ffffffeb;transition:background-color .3s,box-shadow .3s,color .3s;position:fixed;top:0;left:0;right:0}.site-header.is-clear,.site-header.is-light{backdrop-filter:none;box-shadow:none;background:0 0}.site-header.is-light{color:#fff}.site-header__inner{height:var(--header-h);align-items:center;gap:24px;display:flex}.site-logo{flex-shrink:0;text-decoration:none;display:block}.site-logo img{width:clamp(120px,14vw,160px);height:auto;transition:filter .3s}.site-header.is-light .site-logo img,.site-footer .site-logo img{filter:invert()}.site-nav{align-items:center;gap:24px;margin-left:auto;display:flex}.site-nav ul{gap:24px;margin:0;padding:0;list-style:none;display:flex}.site-nav ul a{font-family:var(--font-display);letter-spacing:.08em;font-size:14px;font-weight:700;text-decoration:none;position:relative}.site-nav ul a:after{content:"";background:var(--gradient);height:2px;transition:transform .25s;position:absolute;bottom:-4px;left:0;right:0;transform:scaleX(0)}.site-nav ul a:hover:after,.site-nav ul a[aria-current=page]:after{transform:none}.site-nav__cta{padding:8px 20px;font-size:13px}.site-nav__toggle{display:none}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (width<=900px){.site-nav__toggle{z-index:2;width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;place-items:center;margin-left:auto;display:grid;position:relative}.site-nav__toggle-bar,.site-nav__toggle-bar:before,.site-nav__toggle-bar:after{background:currentColor;width:24px;height:2px;transition:transform .25s,background-color .25s;display:block}.site-nav__toggle-bar{position:relative}.site-nav__toggle-bar:before,.site-nav__toggle-bar:after{content:"";position:absolute;left:0}.site-nav__toggle-bar:before{top:-7px}.site-nav__toggle-bar:after{top:7px}.site-header.is-open .site-nav__toggle-bar{background:0 0}.site-header.is-open .site-nav__toggle-bar:before{transform:translateY(7px)rotate(45deg)}.site-header.is-open .site-nav__toggle-bar:after{transform:translateY(-7px)rotate(-45deg)}.site-nav{z-index:1;background:var(--color-bg);color:var(--color-text);opacity:0;visibility:hidden;flex-direction:column;justify-content:center;gap:32px;transition:opacity .25s,visibility .25s;position:fixed;inset:0}.site-header.is-open{color:var(--color-text)}.site-header.is-open .site-nav{opacity:1;visibility:visible}.site-header.is-open .site-logo{z-index:2;position:relative}.site-header.is-open .site-logo img{filter:none}.site-nav ul{flex-direction:column;align-items:center;gap:20px}.site-nav ul a{font-size:18px}.site-nav__cta{padding:12px 32px;font-size:15px}}main{padding-top:var(--header-h)}.hero{margin-top:calc(-1 * var(--header-h));z-index:0;text-align:center;background:radial-gradient(#fff 0%,#eef2f8 70%,#e2e8f2 100%);align-items:center;min-height:100svh;display:grid;position:sticky;top:0;overflow:hidden}.hero~*{z-index:1;background-color:var(--color-bg);position:relative}.hero__network{z-index:0;width:100%;height:100%;position:absolute;inset:0}.hero:after{content:"";z-index:0;pointer-events:none;background:radial-gradient(#ffffffd9 0%,#fff6 45%,#fff0 75%);position:absolute;inset:0}.hero__content,.hero__notice{z-index:1}.hero__content{padding-block:calc(var(--header-h) + 40px) 120px;position:relative}.hero__title{letter-spacing:.06em;margin:0;font-size:clamp(26px,4.4vw,48px);line-height:1.5}.hero__title span{animation:.5s both char-in;animation-delay:calc(.4s + var(--i) * 40ms);display:inline-block}@keyframes char-in{0%{opacity:0;transform:translate(16px,16px)scale(1.2)}}.hero__lead,.hero__actions{animation:1s 1.2s both fade-in}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.hero__title span,.hero__lead,.hero__actions{animation:none}}.hero__lead{margin:20px 0 32px;font-size:clamp(15px,2vw,18px);font-weight:500}.hero__actions{flex-wrap:wrap;justify-content:center;gap:12px;display:flex}.hero__notice{right:var(--gutter);bottom:24px;left:var(--gutter);border-radius:var(--radius);max-width:420px;color:var(--color-text);text-align:left;background:#ffffffeb;align-items:center;gap:12px;margin-left:auto;padding:12px 20px;font-size:14px;text-decoration:none;display:flex;position:absolute;box-shadow:0 4px 20px #00000014}.hero__notice-label{background:var(--accent-cyan);font-family:var(--font-display);border-radius:4px;flex-shrink:0;padding:0 8px;font-size:12px;font-weight:700}.hero__notice time{color:var(--color-muted);flex-shrink:0}.hero__notice-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.pillars__list{text-align:center;grid-template-columns:repeat(3,1fr);gap:clamp(24px,4vw,48px);margin:0;padding:0;list-style:none;display:grid}@media (width<=768px){.pillars__list{grid-template-columns:1fr}}.pillars__item img{object-fit:contain;width:auto;height:140px;margin:0 auto 16px}.pillars__no{color:var(--color-muted);font-family:var(--font-display);letter-spacing:.12em;margin:0;font-size:13px;font-weight:700}.pillars__name{font-family:var(--font-display);letter-spacing:.08em;margin:4px 0 8px;font-size:24px}.pillars__body{margin:0;font-size:15px}.cta{background:var(--gradient);text-align:center;padding-block:80px}.cta__lead{margin:0 0 28px;font-size:clamp(18px,3vw,26px);font-weight:700}.cta .button--accent{background:var(--color-ink);color:#fff}.cta .button--accent:hover{color:var(--color-ink);background:#fff}.works__head{border-bottom:1px solid var(--color-ink);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:32px;padding-bottom:12px;display:flex}.works__title{font-family:var(--font-display);align-items:baseline;gap:16px;margin:0;font-size:clamp(30px,4vw,40px);font-weight:500;line-height:1;display:flex}.works__title:before{content:"";background:var(--color-ink);width:.5em;height:.5em;box-shadow:-.14em .14em 0 -.03em var(--color-bg), -.14em .14em 0 0 var(--color-ink);align-self:center;transform:translate(.14em,-.07em)}.works__title span{font-family:var(--font-base);color:var(--color-muted);font-size:14px;font-weight:400}.works__filters{flex-wrap:wrap;gap:4px;display:flex}.works__filters[hidden]{display:none}.works__filters button{color:#fff;min-height:36px;font:inherit;cursor:pointer;background:#777;border:0;padding:6px 14px;font-size:14px;transition:background-color .2s}.works__filters button:hover,.works__filters button[aria-pressed=true]{background:var(--color-ink)}.works__filters button:focus-visible{outline:3px solid var(--accent-cyan);outline-offset:2px}.works__grid{grid-template-columns:repeat(4,1fr);gap:12px;margin:0;padding:0;list-style:none;display:grid}@media (width<=960px){.works__grid{grid-template-columns:repeat(3,1fr)}}@media (width<=600px){.works__grid{grid-template-columns:repeat(2,1fr);gap:8px}}.works__item[hidden]{display:none}.works__item.is-shown{animation:.6s both fade-in}.works__link{aspect-ratio:1;background:var(--color-bg-soft);color:#fff;text-decoration:none;display:block;position:relative;overflow:hidden}.works__link img{object-fit:cover;width:100%;height:100%;transition:transform .5s}.works__noimage{height:100%;color:var(--color-muted);font-family:var(--font-display);place-items:center;display:grid}.works__overlay{outline-offset:-12px;opacity:0;text-align:center;background:#0009;outline:1px solid #fffc;flex-direction:column;justify-content:center;gap:8px;padding:16px;transition:opacity .3s;display:flex;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #fffc}.works__link:hover .works__overlay,.works__link:focus-visible .works__overlay{opacity:1}.works__link:hover img,.works__link:focus-visible img{transform:scale(1.05)}.works__link:focus-visible{outline:3px solid var(--accent-cyan);outline-offset:2px}.works__name{font-size:15px;font-weight:700;line-height:1.5}.works__cats{opacity:.85;font-size:12px}@media (hover:none){.works__overlay{box-shadow:none;opacity:1;text-align:left;background:linear-gradient(#0000 40%,#000000b3);outline:0;justify-content:flex-end;padding:10px}.works__name{font-size:12px}.works__cats{display:none}}.works__more{text-align:right;margin:24px 0 0}.works__more a{font-family:var(--font-display);letter-spacing:.08em;text-underline-offset:6px;font-weight:700}.works__more a:after{content:" →"}.inview-js [data-inview],.inview-js [data-inview-stagger]>*{opacity:0;transition:opacity 1.4s,transform 1.4s;transform:translateY(30px)}.inview-js [data-inview-stagger]>*{transition-delay:calc(var(--stagger-i,0) * .15s)}.inview-js [data-inview].is-inview,.inview-js [data-inview-stagger].is-inview>*{opacity:1;transform:none}@media print{.inview-js [data-inview],.inview-js [data-inview-stagger]>*{opacity:1;transform:none}}.card-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:40px 28px;display:grid}.card__link{text-decoration:none;display:block}.card__thumb{aspect-ratio:715/410;border-radius:var(--radius);background:var(--color-bg-soft);overflow:hidden}.card__thumb img{object-fit:cover;width:100%;height:100%;transition:transform .4s}.card__link:hover .card__thumb img{transform:scale(1.04)}.card__noimage{height:100%;color:var(--color-muted);font-family:var(--font-display);place-items:center;display:grid}.card__title{margin:14px 0 8px;font-size:16px;line-height:1.6}.card__meta{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.card__date{color:var(--color-muted);font-size:13px}.card__author{margin:0 0 8px;font-size:14px;font-weight:700}.card__author span{color:var(--color-muted);margin-left:8px;font-weight:400}.card__cats,.tag-list,.filter-list{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.card__cats a{background:var(--accent-yellow);border-radius:999px;padding:2px 12px;font-size:12px;text-decoration:none;display:inline-block}.filter-list{justify-content:center;margin-bottom:40px}.filter-list a{border:1px solid var(--color-ink);border-radius:999px;padding:6px 20px;font-size:14px;text-decoration:none;display:inline-block}.filter-list a:hover{background:var(--color-ink);color:#fff}.page-header{background:var(--color-bg-soft);text-align:center;padding-block:clamp(48px,8vw,96px)}.page-header__title{margin:0;font-size:clamp(26px,4vw,40px);line-height:1.4}.page-header__lead{color:var(--color-muted);margin:12px 0 0;font-size:14px}.entry-header{margin-bottom:32px}.entry-header__title{margin:12px 0 8px;font-size:clamp(24px,4vw,34px);line-height:1.5}.entry-header time{color:var(--color-muted);font-size:14px}.entry-image{border-radius:var(--radius);width:100%;margin-bottom:32px}.tag-list{margin-top:40px}.tag-list a{color:var(--color-muted);font-size:14px}.entry-back{text-align:center;margin-top:56px}.news-list{margin:0;padding:0;list-style:none}.news-list li{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:4px 24px;padding:20px 0;display:flex}.news-list time{color:var(--color-muted)}.prose{overflow-wrap:anywhere}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3,.prose h4,.prose h5,.prose h6{margin:2em 0 .8em;line-height:1.5}.prose h1{font-size:clamp(22px,3.4vw,30px)}.prose h2{border-bottom:2px solid var(--color-ink);padding-bottom:8px;font-size:clamp(20px,3vw,26px)}.prose h3,.prose h4{border-left:4px solid var(--accent-pink);padding-left:14px;font-size:19px}.prose h5,.prose h6{font-size:16px}.prose img{border-radius:var(--radius);margin-block:24px}.prose a{text-underline-offset:4px}.prose table{border-collapse:collapse;width:100%;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--color-border);text-align:left;padding:12px}.section--soft,.hero~.section--soft{background:var(--color-bg-soft)}.page-lead{text-align:center;max-width:760px;margin:0 auto 40px}.center{text-align:center}.service-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:24px;margin:0;padding:0;list-style:none;display:grid}.service-grid__item{border-radius:var(--radius);background:var(--color-bg);overflow:hidden;box-shadow:0 2px 16px #0000000f}.service-grid__item img{object-fit:cover;width:100%;height:120px}.service-grid__name{margin:20px 24px 8px;font-size:18px}.service-grid__item p{color:var(--color-muted);margin:0 24px 24px;font-size:14px}.faq__heading{border-bottom:2px solid var(--color-ink);margin:0 0 24px;padding-bottom:8px;font-size:clamp(18px,2.6vw,22px)}.faq{gap:16px;margin:0;display:grid}.faq__item{border-radius:var(--radius);background:var(--color-bg-soft)}.faq__q,.faq__a{padding:16px 24px 16px 64px;position:relative}.faq__q{font-weight:700}.faq__a{border-top:1px solid var(--color-border);margin:0;font-size:15px}.faq__q:before,.faq__a:before{width:30px;height:30px;font-family:var(--font-display);border-radius:50%;place-items:center;font-weight:700;line-height:1;display:grid;position:absolute;top:14px;left:20px}.faq__q:before{content:"Q";background:var(--accent-cyan)}.faq__a:before{content:"A";background:var(--accent-pink)}.faq__a p{margin:0 0 8px}.faq__a p:last-child{margin-bottom:0}.chat-tools{flex-wrap:wrap;gap:12px;margin:16px 0 0;padding:0;list-style:none;display:flex}.chat-tools a{background:var(--color-bg);border-radius:999px;align-items:center;gap:8px;padding:8px 16px;font-size:14px;text-decoration:none;display:flex}.chat-tools img{object-fit:contain;width:24px;height:24px}.work-info{border-top:1px solid var(--color-border);gap:0;margin:40px 0 0;display:grid}.work-info>div{border-bottom:1px solid var(--color-border);grid-template-columns:8em 1fr;gap:16px;padding:14px 0;display:grid}.work-info dt{font-weight:700}.work-info dd{margin:0}.work-cta{border-radius:var(--radius);background:var(--color-bg-soft);margin-top:48px;padding:clamp(24px,4vw,40px)}.work-cta p{margin:0 0 12px}.work-cta__lead{font-size:18px;font-weight:700}.work-cta__actions{flex-wrap:wrap;gap:12px;display:flex;margin-top:20px!important}.flow{gap:16px;margin:0;padding:0;list-style:none;display:grid}.flow>li{border-left:4px solid var(--accent-pink);border-radius:0 var(--radius) var(--radius) 0;background:var(--color-bg-soft);padding:20px 24px}.flow__step{font-family:var(--font-display);letter-spacing:.1em;color:var(--color-muted);font-size:13px;font-weight:700}.flow__title{margin:4px 0 8px;font-size:17px}.flow p{margin:0;font-size:15px}.breadcrumbs{color:var(--color-muted);padding-block:24px 40px;font-size:13px}.breadcrumbs ol{flex-wrap:wrap;gap:4px 0;margin:0;padding:0;list-style:none;display:flex}.breadcrumbs li+li:before{content:"›";margin:0 10px}.breadcrumbs a{color:inherit}.site-footer{background:var(--color-ink);color:#fff;padding-top:64px}.site-footer__inner{grid-template-columns:2fr 1fr 1fr;gap:40px;display:grid}.site-footer__company p{margin:16px 0;font-size:14px}.site-footer__sns{font-size:14px}.site-footer__heading{font-family:var(--font-display);letter-spacing:.12em;margin:0 0 12px;font-weight:700}.site-footer__nav ul{margin:0;padding:0;font-size:14px;list-style:none}.site-footer__nav a{padding:4px 0;text-decoration:none;display:inline-block}.site-footer__nav a:hover{text-decoration:underline}.site-footer__bottom{padding:20px var(--gutter);text-align:center;border-top:1px solid #fff3;margin-top:48px;position:relative}.site-footer__copy{margin:0;font-size:12px}.site-footer__pagetop{top:50%;right:var(--gutter);font-family:var(--font-display);letter-spacing:.1em;font-size:12px;font-weight:700;text-decoration:none;position:absolute;transform:translateY(-50%)}.site-footer__pagetop:before{content:"↑ "}@media (width<=600px){.site-footer__bottom{flex-direction:column-reverse;gap:12px;display:flex}.site-footer__pagetop{position:static;transform:none}}.side-tabs{z-index:40;flex-direction:column;align-items:flex-end;display:flex;position:fixed;top:50%;right:0;transform:translateY(-50%)}.side-tabs__item{--tab-w:70px;--panel-w:386px;width:calc(var(--tab-w) + var(--panel-w));color:#fff;transform:translateX(var(--panel-w));text-decoration:none;transition:transform .25s;display:flex}.side-tabs__item:hover,.side-tabs__item:focus-visible{transform:none}.side-tabs__item:focus-visible{outline:3px solid var(--accent-cyan);outline-offset:-3px}.side-tabs__item--blue{background:#2160ce}.side-tabs__item--orange{background:#d93}.side-tabs__title{flex:0 0 var(--tab-w);writing-mode:vertical-rl;letter-spacing:.2em;place-items:center;padding:24px 0;font-size:16px;display:grid}.side-tabs__panel{border-left:1px solid #ffffff4d;flex-direction:column;justify-content:center;gap:8px;padding:24px;display:flex}.side-tabs__catch{font-weight:700}.side-tabs__desc{font-size:14px;line-height:1.8}@media (width<=768px){.side-tabs{display:none}.site-footer__inner{grid-template-columns:1fr 1fr}.site-footer__company{grid-column:1/-1}}.form-intro{margin-bottom:40px}.form-intro p{margin:0 0 8px}.contact-form__note{color:var(--color-muted);margin:0 0 24px;font-size:14px}.required{background:var(--accent-pink);vertical-align:middle;border-radius:4px;margin-left:8px;padding:0 8px;font-size:11px;font-weight:700;line-height:1.8;display:inline-block}.contact-form__note .required{margin:0 4px 0 0}.field{margin-bottom:28px}.field fieldset{border:0;margin:0;padding:0}.field__label{margin-bottom:8px;padding:0;font-weight:700;display:block}.field__note{color:var(--color-muted);margin:0 0 8px;font-size:14px}.field input[type=text],.field input[type=email],.field input[type=tel],.field input[type=url],.field textarea{width:100%;color:var(--color-text);font:inherit;background:#fff;border:1px solid #bbb;border-radius:8px;padding:12px 14px;font-size:16px;line-height:1.6}.field input:focus-visible,.field textarea:focus-visible{outline:3px solid var(--accent-cyan);outline-offset:1px;border-color:var(--color-ink)}.field input[type=file]{max-width:100%;font-size:14px}.field--sub{margin:16px 0 0}.field__choices{flex-wrap:wrap;gap:8px 20px;display:flex}.choice{cursor:pointer;align-items:center;gap:8px;min-height:44px;display:inline-flex}.choice input{width:20px;height:20px;accent-color:var(--color-ink);margin:0}.field__error{color:#c0003c;margin:6px 0 0;font-size:14px}.field__error:empty{display:none}.field--invalid input[type=text],.field--invalid input[type=email],.field--invalid input[type=tel],.field--invalid input[type=url],.field--invalid textarea{border-color:#c0003c}.field--consent{margin-top:40px}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.cf-turnstile{margin-bottom:16px}.contact-form__status{margin:0 0 16px;font-weight:700}.contact-form__status:empty{display:none}.contact-form__submit{cursor:pointer;width:100%;max-width:320px;min-height:56px;font-size:16px}.contact-form__submit:disabled{opacity:.6;cursor:wait}.contact-form__done{border-radius:var(--radius);background:var(--color-bg-soft);text-align:center;padding:40px 24px}.contact-form__done:focus{outline:none}.contact-form__done h2{margin:0 0 16px}
