:root{--ink: #1a1714;--ink-soft: #3d3832;--paper: #f7f5f2;--paper-soft: #efece7;--paper-muted: #6e675e;--lacquer: #d63526;--lacquer-deep: #b52a1c;--smoke: rgba(26, 23, 20, .04);--line: rgba(26, 23, 20, .12);--font-display: "Syne", sans-serif;--font-body: "Noto Sans JP", sans-serif;--ease-out: cubic-bezier(.22, 1, .36, 1)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:auto}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}img{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{font:inherit;border:none;background:none;cursor:pointer;color:inherit}.site{min-height:100vh}.nav{position:fixed;inset:0 0 auto;z-index:40;display:flex;align-items:center;justify-content:space-between;padding:1.25rem clamp(1.25rem,4vw,3rem);background:linear-gradient(180deg,#1a17148c,#1a171400);color:#fff;transition:color .3s var(--ease-out),background .3s var(--ease-out)}.nav.is-scrolled{background:#f7f5f2eb;color:var(--ink);border-bottom:1px solid var(--line)}.nav.is-scrolled .lang-switch{border-color:var(--line)}.nav__brand{font-family:var(--font-display);font-weight:800;font-size:1.15rem;letter-spacing:.08em}.nav__end{display:flex;align-items:center;gap:1.5rem}.nav__links{display:flex;gap:1.75rem;list-style:none;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.site{min-height:100vh;display:flex;flex-direction:column}.page{flex:1;padding-top:5.5rem;min-height:calc(100svh - 5rem)}.nav__links a{opacity:.75;transition:opacity .25s var(--ease-out),color .25s var(--ease-out)}.nav__links a:hover,.nav__links a.active{opacity:1}.nav__links a.active{color:var(--lacquer)}.nav:not(.is-scrolled) .nav__links a.active{color:#fff;text-decoration:underline;text-underline-offset:.35rem}.lang-switch{display:inline-flex;border:1px solid rgba(255,255,255,.35);overflow:hidden}.lang-switch__btn{padding:.35rem .55rem;font-family:var(--font-display);font-size:.7rem;font-weight:700;letter-spacing:.08em;opacity:.55;transition:opacity .2s var(--ease-out),background .2s var(--ease-out)}.lang-switch__btn.is-active{opacity:1;background:#ffffff24}.nav.is-scrolled .lang-switch__btn.is-active{background:var(--smoke)}.lang-switch__btn:hover{opacity:1}.nav__toggle,.nav__backdrop,.nav__mobile-menu{display:none}@media(max-width:720px){.nav__desktop{display:none}.nav__toggle{display:inline-flex;flex-direction:column;justify-content:center;gap:5px;width:2.5rem;height:2.5rem;padding:.45rem;border:1px solid rgba(255,255,255,.35);border-radius:.2rem;transition:border-color .25s var(--ease-out),background .25s var(--ease-out)}.nav.is-scrolled .nav__toggle{border-color:var(--line)}.nav__toggle span{display:block;height:2px;background:currentColor;transition:transform .25s var(--ease-out),opacity .25s var(--ease-out)}.nav.is-menu-open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav.is-menu-open .nav__toggle span:nth-child(2){opacity:0}.nav.is-menu-open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav__backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:39;border:none;background:#1a17148c;cursor:pointer}.nav__mobile-menu{display:block;position:fixed;top:0;right:0;z-index:41;width:min(18rem,86vw);height:100dvh;padding:5.5rem 1.5rem 2rem;background:var(--paper);color:var(--ink);border-left:1px solid var(--line);box-shadow:-12px 0 40px #1a17141f;transform:translate(100%);transition:transform .3s var(--ease-out);pointer-events:none}.nav.is-menu-open .nav__mobile-menu{transform:translate(0);pointer-events:auto}.nav__mobile-links{list-style:none;display:grid;gap:.25rem}.nav__mobile-links a{display:block;padding:.95rem 0;font-family:var(--font-display);font-size:.95rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;border-bottom:1px solid var(--line);transition:color .25s var(--ease-out)}.nav__mobile-links a.active{color:var(--lacquer)}}.hero{position:relative;flex:1;min-height:100svh;display:grid;align-items:end;padding:clamp(5rem,12vh,8rem) clamp(1.25rem,4vw,3rem) clamp(2.5rem,6vh,4rem);overflow:hidden;color:#fff}.hero-carousel{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;touch-action:pan-y pinch-zoom}.hero-carousel.is-dragging{touch-action:none}.hero-carousel__track{position:absolute;top:0;right:0;bottom:0;left:0;cursor:grab}.hero-carousel.is-dragging .hero-carousel__track{cursor:grabbing}.hero-carousel__slide{position:absolute;top:0;right:0;bottom:0;left:0;margin:0;opacity:0;transition:opacity 1.1s var(--ease-out);pointer-events:none;will-change:transform}.hero-carousel__slide.is-active{opacity:1;pointer-events:auto}.hero-carousel__image{width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.04);transition:transform 8s var(--ease-out)}.hero-carousel__slide.is-active .hero-carousel__image{transform:scale(1)}.hero-carousel__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#1a171459,#1a171426 35%,#1a1714d1),linear-gradient(90deg,#1a1714b8,#1a171459 42%,#1a17141a),radial-gradient(ellipse 70% 55% at 88% 88%,rgba(26,23,20,.92) 0%,rgba(26,23,20,.45) 55%,transparent 100%);pointer-events:none}.hero-carousel__panel{position:absolute;left:0;right:0;bottom:0;z-index:6;display:flex;flex-direction:column;gap:.75rem;padding:0 1rem 1.25rem;pointer-events:none}.hero-carousel__card{width:100%;pointer-events:none}.hero-carousel__caption{width:100%;margin:0;text-align:left;padding:.95rem 1rem;background:#1a1714;border:1px solid rgba(255,255,255,.18);border-right:3px solid var(--lacquer);box-shadow:0 16px 48px #00000073;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .55s var(--ease-out),visibility .55s var(--ease-out)}.hero-carousel__caption.is-visible{opacity:1;visibility:visible}.hero-carousel__label{display:block;font-family:var(--font-display);font-size:.75rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:#ffb4ab;margin-bottom:.5rem}.hero-carousel__text{display:block;font-size:clamp(.92rem,1.9vw,1.05rem);line-height:1.65;font-weight:500;color:#fff}.hero-carousel__dots{display:flex;justify-content:center;gap:.55rem;width:100%;margin:0;padding:0;pointer-events:auto;list-style:none}.hero-carousel__dot{width:2.4rem;height:.18rem;background:#ffffff59;transition:background .25s var(--ease-out),transform .25s var(--ease-out)}.hero-carousel__dot.is-active{background:var(--lacquer);transform:scaleY(1.6)}.hero__grain{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px;mix-blend-mode:soft-light;pointer-events:none}.hero__content{position:relative;z-index:2;max-width:38rem;pointer-events:none}.hero__actions{pointer-events:auto}.hero__brand{font-family:var(--font-display);font-weight:800;font-size:clamp(3.5rem,12vw,7.5rem);line-height:.9;letter-spacing:-.03em;margin-bottom:.85rem;animation:rise .9s var(--ease-out) both;text-shadow:0 2px 24px rgba(26,23,20,.35)}.hero__brand span{display:block;color:var(--lacquer);font-size:.22em;letter-spacing:.35em;margin-bottom:.85rem;font-weight:700}.hero__tagline{font-family:var(--font-display);font-weight:700;font-size:clamp(1.15rem,2.8vw,1.55rem);letter-spacing:.06em;margin-bottom:.85rem;animation:rise .9s .08s var(--ease-out) both;text-shadow:0 2px 18px rgba(26,23,20,.35)}.hero__lead{font-size:clamp(1rem,2.4vw,1.2rem);color:#ffffffd1;max-width:28rem;margin-bottom:2rem;animation:rise .9s .14s var(--ease-out) both;text-shadow:0 2px 16px rgba(26,23,20,.35)}.hero__actions{display:flex;flex-wrap:wrap;gap:.85rem;animation:rise .9s .24s var(--ease-out) both}.btn{display:inline-flex;align-items:center;justify-content:center;padding:.9rem 1.6rem;font-size:.85rem;letter-spacing:.1em;transition:background .25s var(--ease-out),color .25s var(--ease-out),border-color .25s var(--ease-out),transform .25s var(--ease-out)}.btn--primary{background:var(--lacquer);color:#fff}.btn--primary:hover{background:var(--lacquer-deep);transform:translateY(-2px)}.btn--ghost{border:1px solid rgba(255,255,255,.45);color:#fff;background:#1a171433;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.btn--ghost:hover{border-color:#fff;background:#ffffff1f;transform:translateY(-2px)}@media(min-width:721px){.hero-carousel__panel{top:0;right:0;bottom:0;left:0;display:block;padding:0}.hero-carousel__card{position:absolute;right:clamp(1.25rem,4vw,3rem);bottom:clamp(5.5rem,14vh,8rem);width:min(24rem,44vw)}.hero-carousel__caption{text-align:right;padding:1.1rem 1.2rem;transform:translateY(18px);transition:opacity .55s var(--ease-out),transform .55s var(--ease-out),visibility .55s var(--ease-out)}.hero-carousel__caption.is-visible{transform:translateY(0)}.hero-carousel__dots{position:absolute;left:50%;bottom:clamp(1.5rem,4vh,2.25rem);width:auto;transform:translate(-50%)}}@media(max-width:720px){.hero-carousel{touch-action:none}.hero{padding-bottom:clamp(11rem,28vh,14rem)}.hero-carousel__slide{display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-carousel__image{width:100%;height:100%;min-width:100%;min-height:100%;object-fit:cover;object-position:center center;transform:none;transition:none}.hero-carousel__slide.is-active .hero-carousel__image{transform:none}.hero-carousel__overlay{background:linear-gradient(180deg,#1a171473,#1a17141a 40%,#1a1714bf),radial-gradient(ellipse 90% 70% at 50% 42%,rgba(26,23,20,.35) 0%,transparent 70%)}}.section{padding:clamp(4.5rem,10vh,7rem) clamp(1.25rem,4vw,3rem)}.section__inner{max-width:1100px;margin:0 auto}.section__label{font-family:var(--font-display);font-size:.75rem;letter-spacing:.28em;text-transform:uppercase;color:var(--lacquer);margin-bottom:.75rem}.section__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.85rem,4.5vw,2.75rem);line-height:1.2;letter-spacing:-.02em;margin-bottom:.85rem}.section__text{color:var(--paper-muted);max-width:36rem;margin-bottom:2.5rem}.services{background:linear-gradient(180deg,var(--paper) 0%,var(--paper-soft) 40%,var(--paper) 100%);border-block:1px solid var(--line)}.service-list{display:grid;gap:0;border-top:1px solid var(--line)}.service{display:grid;grid-template-columns:auto 6.5rem 1fr auto;gap:1.25rem 1.75rem;align-items:center;padding:1.6rem 0;border-bottom:1px solid var(--line);transition:background .3s var(--ease-out);color:inherit;text-decoration:none}.service:hover{background:var(--smoke)}.service:focus-visible{outline:2px solid var(--lacquer);outline-offset:4px}.service__num{font-family:var(--font-display);font-size:.8rem;letter-spacing:.12em;color:var(--lacquer);min-width:2.5rem;align-self:start;padding-top:.35rem}.service__image{width:100%;aspect-ratio:4 / 3;object-fit:cover;border-radius:.35rem;border:1px solid var(--line);background:var(--paper-soft)}.service__title{font-family:var(--font-display);font-weight:700;font-size:clamp(1.25rem,3vw,1.65rem);margin-bottom:.35rem}.service__desc{color:var(--paper-muted);font-size:.95rem;max-width:34rem}.service__more{display:inline-block;margin-top:.65rem;font-size:.8rem;letter-spacing:.08em;color:var(--lacquer)}.service__tag{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-muted);white-space:nowrap;align-self:start;padding-top:.35rem}@media(max-width:720px){.service{grid-template-columns:auto 5.5rem 1fr}.service__tag{grid-column:3}}.service-detail__num{font-family:var(--font-display);font-size:.85rem;letter-spacing:.14em;color:var(--lacquer);margin:0 0 .75rem}.service-detail__tag{display:inline-block;margin:-.5rem 0 1.25rem;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--paper-muted)}.service-detail__visual{margin:0 0 2rem;max-width:42rem}.service-detail__image{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:.5rem;border:1px solid var(--line);background:var(--paper-soft)}.service-detail__lead{max-width:42rem;margin-bottom:2.5rem}.service-detail__sections{display:grid;gap:1.75rem;max-width:42rem;margin-bottom:2.75rem}.service-detail__block{padding-top:1.5rem;border-top:1px solid var(--line)}.service-detail__heading{font-family:var(--font-display);font-size:1.15rem;font-weight:700;margin-bottom:.55rem}.service-detail__body{color:var(--paper-muted);line-height:1.75}.service-detail__actions{display:flex;flex-wrap:wrap;gap:.85rem 1rem}.about{position:relative}.about__grid{display:grid;grid-template-columns:1fr 1.15fr;gap:clamp(2rem,5vw,4rem);align-items:start}.about__visual{position:relative;min-height:28rem;background:linear-gradient(160deg,rgba(214,53,38,.2),transparent 50%),url(https://images.unsplash.com/photo-1697442054113-f91165bd8885?auto=format&fit=crop&w=1200&q=80) center / cover;clip-path:polygon(0 8%,100% 0,100% 100%,0 92%);animation:about-shift 16s ease-in-out infinite alternate}.about__visual:before{content:"CREATIVE";position:absolute;left:1rem;bottom:1.5rem;font-family:var(--font-display);font-weight:800;font-size:clamp(2rem,5vw,3.2rem);letter-spacing:.08em;writing-mode:vertical-rl;color:#fff;mix-blend-mode:soft-light}.company-table{width:100%;border-collapse:collapse;font-size:.92rem}.company-table th,.company-table td{padding:1rem 0;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.company-table th{width:7.5rem;color:var(--paper-muted);font-weight:500;letter-spacing:.06em;white-space:nowrap}.company-table td{color:var(--ink);white-space:pre-line}@media(max-width:860px){.about__grid{grid-template-columns:1fr}.about__visual{min-height:18rem;order:-1}}.contact{background:var(--paper-soft);border-top:1px solid var(--line)}.contact__panel{display:grid;grid-template-columns:1.2fr 1fr;gap:2.5rem;align-items:end}.contact__mail{font-family:var(--font-display);font-weight:700;font-size:clamp(1.4rem,3.5vw,2.1rem);letter-spacing:-.01em;border-bottom:2px solid var(--lacquer);padding-bottom:.35rem;display:inline-block;transition:color .25s var(--ease-out)}.contact__mail:hover{color:var(--lacquer)}.contact__phone{margin-top:.85rem;font-family:var(--font-display);font-weight:700;font-size:clamp(1.05rem,2.5vw,1.35rem);letter-spacing:.02em}.contact__phone a{transition:color .25s var(--ease-out)}.contact__phone a:hover{color:var(--lacquer)}.contact__map{margin-top:1rem;font-size:.85rem;letter-spacing:.04em}.contact__map a{color:var(--paper-muted);border-bottom:1px solid var(--line);transition:color .25s var(--ease-out)}.contact__map a:hover{color:var(--ink)}.contact__meta{color:var(--paper-muted);font-size:.9rem;font-style:normal}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(max-width:720px){.contact__panel{grid-template-columns:1fr}}.footer{padding:clamp(2rem,5vh,3rem) clamp(1.25rem,4vw,3rem) 2.25rem;border-top:1px solid var(--line);background:var(--paper-soft)}.footer__inner{max-width:1100px;margin:0 auto 1.75rem;display:grid;grid-template-columns:1.4fr 1fr;gap:2rem;align-items:start}.footer__brand{max-width:24rem}.footer__name{margin-bottom:.5rem}.footer__name strong{color:var(--ink);font-weight:700;font-family:var(--font-display);font-size:1rem;letter-spacing:.12em}.footer__tagline{font-size:.85rem;line-height:1.6;color:var(--paper-muted)}.footer__sitemap-title{font-family:var(--font-display);font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--lacquer);margin-bottom:.85rem}.footer__sitemap-list{list-style:none;display:grid;gap:.55rem}.footer__sitemap-list a{font-size:.85rem;color:var(--ink-soft);transition:color .25s var(--ease-out)}.footer__sitemap-list a:hover{color:var(--lacquer)}.footer__copy{max-width:1100px;margin:0 auto;padding-top:1.25rem;border-top:1px solid var(--line);font-size:.75rem;letter-spacing:.08em;color:var(--paper-muted)}@media(max-width:720px){.footer__inner{grid-template-columns:1fr;gap:1.5rem}}@keyframes rise{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}@keyframes hero-glow{0%{filter:brightness(1)}to{filter:brightness(1.08)}}@keyframes hero-drift{0%{transform:translateY(0) scale(1)}to{transform:translateY(-18px) scale(1.03)}}@keyframes about-shift{0%{transform:scale(1) translateY(0)}to{transform:scale(1.04) translateY(-8px)}}@keyframes pulse{0%,to{opacity:.45}50%{opacity:1}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}html{scroll-behavior:auto}}
