:root{--bg:#050508;--bg-elevated:#0c0c10;--surface:#111116;--surface-soft:#18181f;--primary:#004d8c;--primary-bright:#0a6cbc;--accent:#d4af37;--text:#f4f4f5;--text-soft:#9ca3b0;--text-muted:#6b7280;--border:#ffffff14;--border-strong:#d4af3759;--container:1180px;--font-sans:"IBM Plex Sans JP", system-ui, sans-serif;--font-display:"Bebas Neue", Impact, sans-serif;--ease-out:cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}body{font-family:var(--font-sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}a{color:inherit;text-decoration:none}#root{min-height:100vh}.page{width:min(100%, var(--container));margin:0 auto;padding:16px 18px 64px}.site-header{z-index:10;background:0 0;margin:0 0 12px;padding:0;position:relative}.site-header-inner{width:100%}.top-nav{background:0 0;border:none;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:12px 20px;min-height:72px;padding:0;display:flex}.top-nav-actions{-webkit-backdrop-filter:blur(14px);border:1px solid var(--border);background:#08080cb8;border-radius:14px;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;margin-left:auto;padding:6px 10px 6px 12px;display:flex}.brand-link{background:0 0;flex-shrink:0;align-items:center;display:inline-flex}.nav-logo{object-fit:contain;object-position:left center;background:0 0;width:auto;max-width:min(560px,78vw);height:72px;display:block}.desktop-nav{flex-wrap:wrap;justify-content:flex-end;gap:2px;display:flex}.desktop-nav a{color:var(--text-soft);letter-spacing:.02em;transition:color .2s var(--ease-out), border-color .2s var(--ease-out), background .2s var(--ease-out);border:1px solid #0000;border-radius:999px;padding:8px 12px;font-size:.8125rem;font-weight:600}@media (width>=1100px){.desktop-nav a{padding:8px 14px;font-size:.875rem}}.desktop-nav a:hover{color:var(--text);border-color:var(--border);background:#ffffff0a}.desktop-nav a.active{color:var(--accent);border-color:var(--border-strong);background:#d4af3714}.hamburger{border:1px solid var(--border);cursor:pointer;background:#ffffff0a;border-radius:10px;width:44px;height:44px;padding:10px;display:none}.hamburger span{background:var(--text);width:100%;height:2px;margin:4px 0;display:block}.drawer-backdrop{opacity:0;pointer-events:none;transition:opacity .3s var(--ease-out);z-index:55;background:#000000a6;position:fixed;inset:0}.drawer-backdrop.open{opacity:1;pointer-events:auto}.mobile-drawer{background:var(--surface);border-left:1px solid var(--border);width:min(86vw,320px);height:100vh;transition:transform .32s var(--ease-out);z-index:60;flex-direction:column;display:flex;position:fixed;top:0;right:0;transform:translate(100%);box-shadow:-24px 0 48px #00000073}.mobile-drawer.open{transform:translate(0)}.drawer-header{border-bottom:1px solid var(--border);font-family:var(--font-display);letter-spacing:.12em;color:var(--accent);justify-content:space-between;align-items:center;padding:18px;font-size:1.25rem;display:flex}.drawer-header button{color:var(--text);cursor:pointer;background:0 0;border:0;font-size:28px;line-height:1}.drawer-nav{gap:6px;padding:12px;display:grid}.drawer-nav a{color:var(--text-soft);border-radius:10px;padding:14px;font-weight:600}.drawer-nav a.active,.drawer-nav a:hover{color:var(--accent);background:#d4af371a}.hero-slider-section{width:100vw;margin-top:8px;margin-bottom:0;margin-left:calc(50% - 50vw)}.hero-slider-viewport{background:#000;min-height:min(72vh,820px);max-height:88vh;position:relative;overflow:hidden}.hero-slider-viewport.hero-slider-loading{background:linear-gradient(110deg,#0a0a0a 0%,#141414 45%,#0a0a0a 90%) 0 0/200% 100%;animation:1.4s ease-in-out infinite hero-slider-shimmer}@keyframes hero-slider-shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.hero-slider-track{height:100%;min-height:inherit;transition:transform .85s var(--ease-out);will-change:transform;display:flex}.hero-slide{width:100%;min-height:inherit;flex:0 0 100%;position:relative}.hero-slide img{width:100%;height:100%;min-height:inherit;object-fit:cover;display:block}.hero-slide-scrim{pointer-events:none;background:linear-gradient(#00000026 0%,#0000000d 35%,#0000008c 85%,#000000e0 100%);position:absolute;inset:0}.hero-slide-meta{flex-direction:column;gap:6px;max-width:min(90vw,520px);display:flex;position:absolute;bottom:clamp(72px,12vh,120px);left:clamp(16px,4vw,48px)}.hero-slide-count{font-family:var(--font-display);letter-spacing:.06em;color:#ffffff38;font-size:clamp(2.5rem,8vw,4.5rem);line-height:1}.hero-slider-nav{width:48px;height:48px;color:var(--text);cursor:pointer;transition:background .2s var(--ease-out), border-color .2s var(--ease-out), color .2s;z-index:5;background:#00000073;border:1px solid #fff3;border-radius:50%;place-items:center;font-size:1.75rem;line-height:1;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.hero-slider-nav:hover{border-color:var(--accent);color:var(--accent);background:#d4af3733}.hero-slider-prev{left:clamp(12px,3vw,28px)}.hero-slider-next{right:clamp(12px,3vw,28px)}.hero-slider-dots{z-index:5;gap:10px;display:flex;position:absolute;bottom:clamp(20px,4vh,36px);left:50%;transform:translate(-50%)}.hero-slider-dots button{cursor:pointer;background:#ffffff40;border:0;border-radius:50%;width:8px;height:8px;padding:0;transition:transform .2s,background .2s}.hero-slider-dots button:hover{background:#ffffff73}.hero-slider-dots button.active{background:var(--accent);transform:scale(1.25)}.home-intro{max-width:720px;margin-top:40px;padding:0 4px 8px}.eyebrow{font-family:var(--font-display);letter-spacing:.2em;color:var(--accent);text-transform:uppercase;margin:0 0 8px;font-size:clamp(1.125rem,2.5vw,1.5rem)}.home-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--text);margin:0 0 16px;font-size:clamp(3rem,10vw,5.5rem);font-weight:400;line-height:.95}.home-tagline{color:var(--text);letter-spacing:.02em;margin:0 0 12px;font-size:clamp(1.05rem,2.2vw,1.25rem);font-weight:600}.home-desc{color:var(--text-soft);max-width:56ch;margin:0 0 24px;line-height:1.75}.hero-actions{flex-wrap:wrap;gap:12px;display:flex}.hero-actions a{letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--border-strong);color:var(--accent);transition:transform .2s var(--ease-out), background .2s var(--ease-out), color .2s;background:0 0;border-radius:999px;justify-content:center;align-items:center;padding:12px 22px;font-size:.875rem;font-weight:700;display:inline-flex}.hero-actions a:first-of-type{background:var(--accent);color:#0a0a0c;border-color:var(--accent)}.hero-actions a:hover{transform:translateY(-2px)}.hero-actions a:first-of-type:hover{background:#e4c04a;border-color:#e4c04a}.hero-actions a:last-of-type:hover{color:var(--text);background:#d4af371f}.section-heading{font-family:var(--font-display);letter-spacing:.12em;color:var(--text);text-transform:uppercase;margin:0;font-size:clamp(2.5rem,6vw,3.75rem);line-height:1}.section-sub{color:var(--accent);letter-spacing:.08em;margin:8px 0 20px;font-size:.9rem;font-weight:600}.lead-muted{color:var(--text-soft);margin:0 0 8px}.content-section{border:1px solid var(--border);background:var(--surface);border-radius:16px;margin-top:28px;padding:clamp(20px,4vw,32px)}.page-block{margin-top:24px}.home-flow{margin-top:48px}.content-section h2:not(.section-heading){margin:0 0 14px}.cards-grid,.flow-grid,.gallery-grid{gap:16px;display:grid}.cards-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}@media (width<=900px){.cards-grid{grid-template-columns:1fr}}.flow-grid-pro{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.service-card,.flow-card{border:1px solid var(--border);background:var(--bg-elevated);transition:border-color .25s var(--ease-out), box-shadow .25s var(--ease-out);border-radius:12px;padding:20px}.service-card:hover,.flow-card:hover{border-color:#d4af3740;box-shadow:0 0 0 1px #d4af3714}.service-card-selectable.active{border-color:var(--border-strong);box-shadow:0 0 0 1px #d4af3729}.service-card-selectable{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;appearance:none}.service-card-selectable:hover{border-color:#d4af3759;box-shadow:0 0 0 1px #d4af371f}.service-card-selectable:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.cards-grid>.service-card.service-card-selectable{box-sizing:border-box;grid-template-rows:auto 1fr auto;align-content:start;height:100%;min-height:280px;display:grid}.cards-grid>.service-card.service-card-selectable>h3{align-self:start;min-height:2.6em;margin:0 0 10px;line-height:1.3}.cards-grid>.service-card.service-card-selectable>p{align-self:start;margin:0}.cards-grid>.service-card.service-card-selectable>ul{align-self:end;margin:14px 0 0;padding-left:18px}.works-flow-diagram{flex-wrap:wrap;align-items:stretch;gap:10px;display:flex}.flow-diagram-item{flex:270px;align-items:center;gap:10px;min-width:0;display:flex}.flow-node{flex:1;margin:0;position:relative}.flow-node p{margin-bottom:0}.flow-arrow{color:var(--accent);opacity:.9;margin-right:2px;font-size:1.25rem;font-weight:700;line-height:1}@media (width<=900px){.works-flow-diagram{flex-direction:column;gap:12px}.flow-diagram-item{flex:none;width:100%}.flow-arrow{margin:0 auto;transform:rotate(90deg)}}.works-flow-block{border-top:1px solid var(--border);margin-top:24px;padding-top:18px}.works-flow-heading{color:var(--accent);letter-spacing:.06em;margin:0 0 14px;font-size:1rem}.flow-card h3{color:var(--accent);letter-spacing:.04em;font-size:.95rem}.service-card h3,.flow-card h3{margin:0 0 10px}.service-card p,.flow-card p{color:var(--text-soft);margin:0 0 12px;font-size:.9rem}.service-card ul{color:var(--text-muted);margin:0;padding-left:18px;font-size:.875rem;line-height:1.65}.gallery-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.gallery-item{border:1px solid var(--border);background:#000;border-radius:12px;margin:0;overflow:hidden}.gallery-item img{aspect-ratio:4/3;object-fit:cover;width:100%;transition:transform .5s var(--ease-out);display:block}.gallery-item:hover img{transform:scale(1.04)}.portfolio-gallery{column-count:3;column-gap:16px}.portfolio-gallery .gallery-item{break-inside:avoid;vertical-align:top;width:100%;margin:0 0 16px;display:inline-block}.portfolio-gallery .gallery-item img{aspect-ratio:auto;object-fit:contain;background:#0a0a0a;width:100%;height:auto}.portfolio-gallery .gallery-item:hover img{transform:none}@media (width<=900px){.portfolio-gallery{column-count:2}}.gallery-item figcaption{background:var(--surface-soft);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.gallery-item small{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;font-size:.75rem}.portfolio-group-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:8px;display:grid}.portfolio-group-card{text-align:left;cursor:pointer;width:100%;color:inherit;font:inherit;appearance:none;border:1px solid var(--border);background:var(--bg-elevated);transition:border-color .25s var(--ease-out), box-shadow .25s var(--ease-out), transform .2s var(--ease-out);border-radius:12px;flex-direction:column;padding:0;display:flex;overflow:hidden}.portfolio-group-card:hover{border-color:#d4af3759;box-shadow:0 0 0 1px #d4af371f}.portfolio-group-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.portfolio-group-cover{background:#000;position:relative}.portfolio-group-cover img{aspect-ratio:3/2;object-fit:cover;width:100%;display:block}.portfolio-group-footer{background:var(--surface-soft);border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;display:flex}.portfolio-group-name{letter-spacing:.02em;font-size:1rem;font-weight:600}.portfolio-group-count{color:var(--text-muted);white-space:nowrap;font-size:.8rem}.portfolio-back-btn{border:1px solid var(--border);background:var(--surface-soft);color:var(--text);font:inherit;cursor:pointer;transition:border-color .2s var(--ease-out), background .2s var(--ease-out);border-radius:8px;align-items:center;gap:6px;margin-bottom:16px;padding:8px 14px;font-size:.9rem;display:inline-flex}.portfolio-back-btn:hover{background:var(--bg-elevated);border-color:#d4af3759}.portfolio-open-label{color:var(--accent);letter-spacing:.04em;margin:0 0 14px;font-size:1.05rem;font-weight:600}.faq-list details{border:1px solid var(--border);background:var(--bg-elevated);border-radius:10px;margin-bottom:10px;padding:14px 16px}.faq-groups{gap:18px;display:grid}.faq-group{border:1px solid var(--border);background:var(--surface-soft);border-radius:12px;padding:14px}.faq-group-title{color:var(--accent);letter-spacing:.04em;margin:0 0 12px;font-size:1rem}.faq-list summary{cursor:pointer;color:var(--text);font-weight:600}.faq-list p{color:var(--text-soft);margin:12px 0 0;font-size:.9rem}.contact-form{gap:14px;margin-top:16px;display:grid}.contact-form label{color:var(--text-soft);gap:8px;font-size:.875rem;font-weight:600;display:grid}.contact-form input,.contact-form textarea{background:var(--bg);border:1px solid var(--border);color:var(--text);font:inherit;border-radius:10px;padding:12px 14px;transition:border-color .2s}.contact-form input:focus,.contact-form textarea:focus{border-color:var(--border-strong);outline:none}.contact-form button{background:var(--accent);color:#0a0a0c;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;width:fit-content;transition:transform .2s var(--ease-out), filter .2s;border:0;border-radius:999px;padding:12px 28px;font-size:.8rem;font-weight:800}.contact-form button:hover{filter:brightness(1.08);transform:translateY(-2px)}.contact-note{color:var(--text-muted);margin-top:14px;font-size:.875rem}.about-page .section-heading{margin-bottom:8px}.about-block{border-top:1px solid var(--border);margin-top:36px;padding-top:32px}.about-block:first-of-type{border-top:0;margin-top:28px;padding-top:0}.about-block-title{font-family:var(--font-display);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 20px;font-size:clamp(1.75rem,4vw,2.25rem);line-height:1}.about-message{grid-template-columns:minmax(0,clamp(200px,32vw,360px)) minmax(0,1fr);align-items:center;gap:clamp(20px,4vw,40px);display:grid}.about-message-photo{border:1px solid var(--border);aspect-ratio:1;background:var(--bg);border-radius:14px;width:100%;max-width:360px;overflow:hidden}.about-message-photo img{object-fit:cover;object-position:center;width:100%;height:100%;display:block}.about-message-lead{color:var(--text);margin:0 0 16px;font-size:clamp(1.05rem,2.2vw,1.2rem);font-weight:600;line-height:1.65}.about-message-body p{color:var(--text-soft);margin:0 0 14px;font-size:.95rem;line-height:1.85}.about-message-body p:last-child{margin-bottom:0}.about-profile-list{grid-template-columns:auto 1fr;gap:0;max-width:560px;margin:0;display:grid}.about-profile-list dt{letter-spacing:.08em;color:var(--text-muted);border-bottom:1px solid var(--border);margin:0;padding:14px 20px 14px 0;font-size:.8rem;font-weight:700}.about-profile-list dd{color:var(--text);border-bottom:1px solid var(--border);margin:0;padding:14px 0;font-size:.95rem}.about-profile-list dt:last-of-type,.about-profile-list dd:last-of-type{border-bottom:0}.about-contact-lead{color:var(--text-soft);margin:0 0 12px;font-size:.95rem}.about-contact-email{color:var(--accent);text-underline-offset:4px;transition:color .2s var(--ease-out), opacity .2s var(--ease-out);align-items:center;gap:8px;font-size:clamp(1rem,2.5vw,1.15rem);font-weight:600;text-decoration:underline;display:inline-flex}.about-contact-email:hover{color:#e4c04a;opacity:.95}.home-social{border-top:1px solid var(--border);justify-content:center;align-items:center;margin-top:48px;padding-top:32px;display:flex}.instagram-icon-link{border:1px solid var(--border);width:52px;height:52px;color:var(--text-soft);transition:color .2s var(--ease-out), border-color .2s var(--ease-out), background .2s var(--ease-out), transform .2s var(--ease-out);background:#ffffff08;border-radius:50%;justify-content:center;align-items:center;display:inline-flex}.instagram-icon-link:hover{color:var(--accent);border-color:var(--border-strong);background:#d4af3714;transform:translateY(-2px)}.instagram-icon{width:26px;height:26px}.site-footer{border-top:1px solid var(--border);color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:48px;padding-top:24px;font-size:.8rem;display:flex}.site-footer a{color:var(--accent);font-weight:600}@media (width<=900px){.hero-slider-viewport{min-height:min(58vh,560px);max-height:70vh}.hero-slide-meta{bottom:clamp(64px,10vh,96px)}}@media (prefers-reduced-motion:reduce){.hero-slider-track{transition-duration:.01ms}.gallery-item img,.hero-actions a,.contact-form button{transition:none}}@media (width<=700px){.page{padding:12px 12px 48px}.top-nav{flex-wrap:nowrap;min-height:56px}.nav-logo{max-width:min(420px,72vw);height:56px}.top-nav-actions{-webkit-backdrop-filter:none;background:0 0;border:none;flex-shrink:0;padding:0}.portfolio-group-grid{grid-template-columns:1fr}.portfolio-gallery{column-count:1}.desktop-nav{display:none}.hamburger{display:inline-block}.content-section{border-radius:14px;padding:18px}.hero-slider-nav{width:40px;height:40px;font-size:1.5rem}.about-message{grid-template-columns:1fr;align-items:start}.about-message-photo{max-width:min(100%,360px);margin:0 auto}}
