:root{--blue: #153f8f;--blue-deep: #071a3d;--blue-bright: #2f80ed;--ink: #111318;--ink-soft: #202735;--muted: #5d6675;--line: #dbe3ef;--soft: #f3f7fb;--white: #ffffff;--cyan: #22a6b3;--shadow: 0 30px 90px rgba(8, 28, 64, .18)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Inter,Noto Sans JP,Yu Gothic,Yu Gothic UI,Hiragino Kaku Gothic ProN,Meiryo,sans-serif;line-height:1.7;background:#f7f9fc;font-feature-settings:"palt" 1;text-rendering:geometricPrecision}p,h1,h2,h3{word-break:auto-phrase;overflow-wrap:break-word;line-break:strict}a{color:inherit;text-decoration:none}.site-header{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px clamp(20px,4vw,64px);border-bottom:1px solid rgba(219,227,239,.72);background:#ffffffe6;backdrop-filter:blur(16px)}.menu-toggle{display:none;position:relative;width:42px;height:42px;padding:0;margin:0;border:1px solid var(--line);border-radius:4px;background:#ffffffe6;cursor:pointer;z-index:11}.menu-toggle span{position:absolute;left:10px;width:20px;height:2px;background:var(--blue);border-radius:1px;transition:transform .24s ease,opacity .2s ease,top .24s ease}.menu-toggle span:nth-child(1){top:13px}.menu-toggle span:nth-child(2){top:20px}.menu-toggle span:nth-child(3){top:27px}.menu-toggle[aria-expanded=true] span:nth-child(1){top:20px;transform:rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){top:20px;transform:rotate(-45deg)}.brand{display:flex;align-items:center;gap:14px;min-width:310px}.brand-logo{display:block;width:min(310px,38vw);height:auto}.nav{display:flex;align-items:center;gap:clamp(16px,2.4vw,32px);color:#2d3441;font-size:14px;font-weight:650}.nav a{white-space:nowrap}.nav-cta{padding:9px 16px;border:1px solid var(--line);border-radius:999px;color:var(--blue);font-weight:700}.hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.82fr);gap:clamp(36px,6vw,88px);align-items:center;min-height:calc(100vh - 86px);padding:clamp(56px,8vw,116px) clamp(20px,6vw,88px) 72px;overflow:hidden;background:linear-gradient(120deg,rgba(7,26,61,.07) 0%,transparent 28%),radial-gradient(circle at 76% 24%,rgba(47,128,237,.2),transparent 31%),radial-gradient(circle at 86% 74%,rgba(34,166,179,.14),transparent 28%),linear-gradient(135deg,#f9fbff,#eef4fb 48%,#e6eef8)}.hero:before{position:absolute;inset:0;background:linear-gradient(90deg,rgba(21,63,143,.055) 1px,transparent 1px),linear-gradient(180deg,rgba(21,63,143,.045) 1px,transparent 1px);background-size:72px 72px;content:"";mask-image:linear-gradient(90deg,#0006,#000000db 52%,#00000057);pointer-events:none}.hero-copy,.hero-visual{position:relative;z-index:1}.eyebrow{margin:0 0 18px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}.hero h1,.section-heading h2,.project-copy h2,.company-section h2,.contact-section h2{margin:0;color:var(--ink-soft);font-weight:800;line-height:1.14;letter-spacing:0}.hero h1{max-width:760px;font-size:clamp(44px,5.7vw,78px);letter-spacing:.01em;line-height:1.16}.lead{max-width:620px;margin:28px 0 0;color:#394252;font-size:clamp(17px,1.45vw,21px);font-weight:500;line-height:2}.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:36px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 22px;border-radius:4px;font-weight:750;letter-spacing:.02em;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.button:hover{transform:translateY(-1px)}.button.primary{color:var(--white);background:var(--blue);box-shadow:0 16px 36px #153f8f3d}.button.secondary{color:var(--blue);border:1px solid var(--line);background:#fffc}.hero-visual{position:relative;display:flex;align-items:center;justify-content:center;min-height:540px}.hero-graphic{width:100%;max-width:560px;height:auto;filter:drop-shadow(0 30px 60px rgba(8,28,64,.08))}.tech-tags{position:absolute;left:8px;bottom:18px;display:flex;gap:8px}.tech-tags span{padding:7px 12px;border:1px solid rgba(21,63,143,.16);background:#ffffffeb;color:var(--blue);font-family:Consolas,SFMono-Regular,monospace;font-size:11px;font-weight:700;letter-spacing:.08em;box-shadow:0 12px 32px #122d5414}.section,.project-section,.company-section,.contact-section{padding:clamp(72px,9vw,124px) clamp(20px,6vw,88px)}.intro{border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);background:linear-gradient(120deg,rgba(47,128,237,.16),transparent 34%),linear-gradient(135deg,#07101f,#0e1830 52%,#081220)}.intro p{max-width:1060px;margin:0;color:#f5f8fc;font-size:clamp(24px,3.6vw,48px);font-weight:750;line-height:1.44;letter-spacing:.01em}.section-heading{display:grid;grid-template-columns:.44fr 1fr;gap:28px;align-items:end;margin-bottom:36px}.section-heading h2,.project-copy h2,.company-section h2,.contact-section h2{font-size:clamp(32px,4vw,56px)}.project-copy h2{max-width:760px;font-size:clamp(31px,3.55vw,50px);line-height:1.22;word-break:keep-all;overflow-wrap:anywhere}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.service-card{display:flex;flex-direction:column;min-height:320px;padding:36px 34px 34px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--white);transition:background .2s ease}.service-card:hover{background:#fafcff}.service-icon{display:inline-flex;align-items:center;justify-content:center;width:52px;height:52px;margin-bottom:28px;border:1px solid rgba(21,63,143,.18);color:var(--blue);background:linear-gradient(135deg,#f5f9ff,#eaf1fb)}.service-icon svg{width:28px;height:28px}.service-index{color:var(--blue);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.service-card h3{margin:14px 0;font-size:22px;font-weight:760;line-height:1.4}.value-list h3{margin:46px 0 16px;font-size:24px;font-weight:760;line-height:1.35}.service-card p,.project-copy p,.value-list p,.company-section p,.contact-section p,.company-info{color:var(--muted);font-size:16px;font-weight:450;line-height:1.95}.project-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.7fr);gap:clamp(32px,4.5vw,64px);align-items:center;background:linear-gradient(180deg,#ffffffc7,#f3f7fbf5),linear-gradient(90deg,rgba(21,63,143,.05) 1px,transparent 1px);background-size:auto,84px 84px}.project-copy p{max-width:720px;margin:24px 0 0}.project-panel{border:1px solid var(--line);background:#ffffffb8;box-shadow:var(--shadow);backdrop-filter:blur(10px)}.project-panel{max-width:480px;margin-left:0;margin-right:auto;padding:18px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 8px 16px;border-bottom:1px solid rgba(161,185,216,.46);margin-bottom:12px}.panel-tag{display:inline-flex;align-items:center;gap:8px;padding:4px 10px;background:#22a6b31f;color:#0f6470;font-family:Consolas,SFMono-Regular,monospace;font-size:10px;font-weight:800;letter-spacing:.14em}.panel-meta{color:#5d6675;font-family:Consolas,SFMono-Regular,monospace;font-size:11px;font-weight:600;letter-spacing:.04em}.project-diagram{display:block;width:100%;height:auto}.value-section{background:var(--white)}.value-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line)}.value-list div{min-height:230px;padding:30px;background:var(--white)}.value-list h3{margin-top:0}.company-section{display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,.9fr);gap:clamp(36px,6vw,96px);align-items:start;background:linear-gradient(120deg,rgba(47,128,237,.16),transparent 38%),linear-gradient(135deg,#08111f,#101a30 48%,#050b14)}.company-section h2,.company-section .eyebrow{color:var(--white)}.company-section p{max-width:640px;margin-top:24px;color:#c7d2e3}.company-profile{display:flex;flex-direction:column}.company-profile .eyebrow{margin-bottom:40px;color:#5e91ff}.company-info{margin:0;border-top:1px solid rgba(255,255,255,.18)}.company-info div{display:grid;grid-template-columns:120px 1fr;gap:24px;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.14)}.company-info dt{color:#8fb1ff;font-family:Consolas,SFMono-Regular,monospace;font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;align-self:center}.company-info dd{margin:0;color:#f4f7fb;font-size:15px;font-weight:500;line-height:1.7;letter-spacing:.02em}.company-status{display:flex;align-items:center;gap:10px;margin:28px 0 0;color:#8fb1ff;font-family:Consolas,SFMono-Regular,monospace;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.status-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:#22a6b3;box-shadow:0 0 0 4px #22a6b32e;animation:status-pulse 2.4s ease-in-out infinite}@keyframes status-pulse{0%,to{box-shadow:0 0 0 4px #22a6b32e}50%{box-shadow:0 0 0 7px #22a6b314}}.company-section h2.philosophy{display:flex;flex-direction:column;gap:32px;margin:40px 0 0;font-size:inherit;font-weight:400;line-height:1.3;letter-spacing:0}.philosophy-item{display:block;position:relative}.philosophy-index{display:block;margin-bottom:12px;color:#5e91ff;font-family:Consolas,SFMono-Regular,monospace;font-size:12px;font-weight:800;letter-spacing:.18em}.philosophy-word{display:block;color:#fff;font-family:Inter,sans-serif;font-size:clamp(36px,4.2vw,56px);font-weight:800;line-height:1.05;letter-spacing:-.01em}.philosophy-gloss{display:block;margin-top:12px;color:#b9c8e6;font-family:Inter,Noto Sans JP,Yu Gothic,Hiragino Kaku Gothic ProN,sans-serif;font-size:15px;font-weight:500;letter-spacing:.08em}.philosophy-outro{margin-top:36px;padding-top:28px;border-top:1px solid rgba(255,255,255,.18)}.contact-section{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1fr);gap:clamp(36px,6vw,88px);align-items:start;background:radial-gradient(circle at 88% 24%,rgba(34,166,179,.14),transparent 24%),linear-gradient(135deg,#f8fbff,#edf4fb)}.contact-intro p{max-width:480px}.contact-direct{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--muted)}.contact-direct a{color:var(--blue);font-weight:700;font-family:Consolas,SFMono-Regular,monospace;letter-spacing:.04em}.contact-form{display:flex;flex-direction:column;gap:18px;padding:32px clamp(20px,3vw,36px);background:#ffffffc7;border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(10px)}.form-row{display:flex;flex-direction:column;gap:8px}.form-row.two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.form-row.two>div{display:flex;flex-direction:column;gap:8px}.form-row label{color:var(--ink-soft);font-size:13px;font-weight:700;letter-spacing:.02em}.form-row .req{color:#d94545;margin-left:2px}.contact-form input,.contact-form textarea{padding:12px 14px;border:1px solid var(--line);border-radius:4px;background:var(--white);color:var(--ink);font-family:inherit;font-size:15px;line-height:1.5;transition:border-color .16s ease,box-shadow .16s ease}.contact-form input:focus,.contact-form textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #153f8f1f}.contact-form textarea{resize:vertical;min-height:140px}.form-row.consent{flex-direction:row;align-items:flex-start;gap:10px;margin-top:4px}.form-row.consent input{margin-top:3px;width:16px;height:16px;cursor:pointer;accent-color:var(--blue)}.form-row.consent label{font-size:13px;font-weight:500;color:var(--muted);cursor:pointer}.form-row.consent a{color:var(--blue);text-decoration:underline;text-underline-offset:2px}.contact-form button[type=submit]{margin-top:8px;align-self:flex-start;min-width:180px}.contact-form button[disabled]{opacity:.6;cursor:not-allowed}.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.form-status{margin:0;min-height:1.5em;padding:12px 14px;border-radius:4px;font-size:14px;font-weight:600;line-height:1.5;background:transparent;transition:background .2s ease,color .2s ease}.form-status:empty{padding:0}.form-status.sending{background:#153f8f14;color:var(--blue)}.form-status.success{background:#22a6b324;color:#0f6470}.form-status.error{background:#d945451a;color:#b62828}.site-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:26px clamp(20px,6vw,88px);color:var(--muted);font-size:13px;border-top:1px solid var(--line)}.footer-links{display:flex;gap:18px}.footer-links a{color:var(--muted)}.footer-links a:hover{color:var(--blue)}.legal-section{max-width:820px;margin:0 auto;padding:clamp(56px,8vw,96px) clamp(20px,6vw,56px) clamp(48px,6vw,80px)}.legal-section h1{margin:0 0 16px;color:var(--ink-soft);font-size:clamp(32px,4vw,48px);font-weight:800;line-height:1.2}.legal-meta{margin:0 0 48px;color:var(--muted);font-family:Consolas,SFMono-Regular,monospace;font-size:13px;font-weight:600;letter-spacing:.04em}.legal-content{color:var(--ink);font-size:15px;line-height:1.95}.legal-content h2{margin:44px 0 14px;font-size:18px;font-weight:800;color:var(--blue);letter-spacing:.02em}.legal-content p{margin:0 0 16px;color:#394252}.legal-content ul{margin:0 0 20px;padding-left:22px;color:#394252}.legal-content li{margin-bottom:8px}.legal-content a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.legal-contact{margin:16px 0 24px;padding:22px 24px;background:var(--soft);border-left:3px solid var(--blue)}.legal-contact p{margin:0;font-size:14px;line-height:1.9}.legal-back{margin:56px 0 0;padding-top:32px;border-top:1px solid var(--line)}.legal-back a{color:var(--blue);font-weight:700;font-size:14px}@media(max-width:940px){.contact-section{grid-template-columns:1fr}.site-footer{align-items:flex-start;flex-direction:column}.form-row.two{grid-template-columns:1fr}.site-header{padding:14px clamp(16px,4vw,32px)}.menu-toggle{display:block}.nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:2px;padding:16px clamp(16px,4vw,32px) 24px;background:#fffffffa;border-bottom:1px solid var(--line);box-shadow:0 30px 60px #081c401a;backdrop-filter:blur(20px);transform:translateY(-12px);opacity:0;visibility:hidden;transition:transform .24s ease,opacity .2s ease,visibility 0s linear .24s}.nav.open{transform:translateY(0);opacity:1;visibility:visible;transition:transform .24s ease,opacity .2s ease}.nav a{display:block;padding:16px 14px;font-size:15px;border-radius:4px;border-bottom:1px solid rgba(219,227,239,.5)}.nav a:last-child{border-bottom:0}.nav a:active{background:#153f8f0f}.nav-cta{margin-top:12px;padding:14px 18px!important;border:1px solid var(--line)!important;border-radius:4px!important;text-align:center}body.menu-open{overflow:hidden}.hero,.project-section,.company-section,.section-heading{grid-template-columns:1fr}.hero,.hero-visual{min-height:auto}.service-grid,.value-list{grid-template-columns:1fr}.service-card{min-height:260px}}@media(max-width:560px){.site-header{padding:16px 18px}.brand{min-width:0}.brand-logo{width:min(230px,70vw)}.hero{padding-top:44px}.dashboard-grid{grid-template-columns:1fr}.metric.wide{grid-column:auto}.company-info div{grid-template-columns:1fr;gap:4px}.panel-row{flex-direction:column}.panel-row strong{text-align:left}}.lang-switch{position:relative;margin-left:4px}.lang-switch>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:650;color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;background:#ffffffd1;transition:border-color .16s ease,color .16s ease;white-space:nowrap}.lang-switch>summary::-webkit-details-marker{display:none}.lang-switch>summary::marker{content:""}.lang-switch[open]>summary{border-color:var(--blue);color:var(--blue)}.lang-globe{display:inline-flex;align-items:center;color:var(--blue)}.lang-caret{font-size:9px;opacity:.7}.lang-menu{position:absolute;top:calc(100% + 8px);right:0;margin:0;padding:6px;min-width:150px;list-style:none;background:var(--white);border:1px solid var(--line);border-radius:4px;box-shadow:0 16px 40px #081c401f;z-index:30}.lang-item{display:block;padding:9px 12px;font-size:13px;font-weight:600;color:var(--ink-soft);border-radius:3px;transition:background .14s ease}.lang-item:hover{background:#153f8f0f}.lang-item.active{color:var(--blue);background:#153f8f14}.footer-links .lang-switch>summary{background:transparent;font-size:12px;padding:4px 10px}.footer-links .lang-menu{bottom:calc(100% + 8px);top:auto;right:0}@media(max-width:940px){.nav .lang-switch{margin-top:12px;width:100%}.nav .lang-switch>summary{width:100%;justify-content:center}.nav .lang-menu{position:relative;top:auto;margin-top:6px;box-shadow:none}}
