@charset "UTF-8";

:root{
--bg:#0A0A0F;--surface:#12161C;--surface-2:#181D24;--line:#2A2F36;
--text:#F7F8FA;--muted:#C7CCD1;--muted-2:#9299A3;--violet:#7B3DFF;--blue:#0D6BFF;
--gradient:linear-gradient(135deg,var(--violet),var(--blue));
--container:min(1180px,calc(100% - 40px));--radius-sm:12px;--radius:20px;--radius-lg:32px;
--transition:180ms ease
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:var(--bg);color:var(--text);font-family:"Segoe UI",Inter,system-ui,-apple-system,BlinkMacSystemFont,Arial,sans-serif;font-size:16px;line-height:1.65;-webkit-font-smoothing:antialiased}
body.menu-open{overflow:hidden}img{display:block;max-width:100%;height:auto}a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}button{color:inherit}
::selection{background:rgba(123,61,255,.45);color:#fff}
:focus-visible{outline:3px solid rgba(13,107,255,.9);outline-offset:4px}
.container{width:var(--container);margin-inline:auto}.narrow{max-width:850px}.section{padding:112px 0;position:relative}
.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}
.skip-link{position:fixed;z-index:9999;top:16px;left:16px;padding:10px 16px;border-radius:8px;background:#fff;color:#000;transform:translateY(-160%);transition:transform var(--transition)}
.skip-link:focus{transform:translateY(0)}
.site-header{position:sticky;top:0;z-index:1000;background:rgba(10,10,15,.78);border-bottom:1px solid transparent;backdrop-filter:blur(18px);transition:background var(--transition),border-color var(--transition)}
.site-header.is-scrolled{background:rgba(10,10,15,.94);border-color:rgba(199,204,209,.12)}
.header-inner{display:flex;min-height:88px;align-items:center;justify-content:space-between;gap:28px}
.brand{display:inline-flex;width:106px;align-items:center}.brand img{width:100%}
.primary-nav{display:flex;align-items:center;gap:34px}.primary-nav ul{display:flex;align-items:center;gap:26px;margin:0;padding:0;list-style:none}
.primary-nav ul a{position:relative;color:var(--muted);font-size:14px;font-weight:600;transition:color var(--transition)}
.primary-nav ul a::after{content:"";position:absolute;left:0;right:100%;bottom:-10px;height:2px;background:var(--gradient);transition:right var(--transition)}
.primary-nav ul a:hover,.primary-nav ul a[aria-current="page"]{color:#fff}
.primary-nav ul a:hover::after,.primary-nav ul a[aria-current="page"]::after{right:0}
.nav-actions{display:flex;align-items:center;gap:18px}
.language-switch{display:flex;align-items:center;gap:6px;color:var(--muted-2);font-size:12px;letter-spacing:.08em}.language-switch a{color:var(--muted-2);font-weight:700;transition:color var(--transition)}.language-switch a:hover,.language-switch a[aria-current="page"]{color:#fff}
.nav-toggle{display:none;width:48px;height:48px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer}
.nav-toggle span:not(.sr-only){display:block;width:100%;height:2px;margin:5px 0;background:#fff;transition:transform var(--transition),opacity var(--transition)}

.button{display:inline-flex;min-height:50px;align-items:center;justify-content:center;gap:8px;padding:12px 22px;border:1px solid transparent;border-radius:999px;font-weight:700;line-height:1.2;cursor:pointer;transition:transform var(--transition),border-color var(--transition),background var(--transition),color var(--transition),box-shadow var(--transition)}
.button:hover{transform:translateY(-2px)}.button-primary{background:var(--gradient);color:#fff;box-shadow:0 12px 34px rgba(55,78,255,.23)}
.button-primary:hover{box-shadow:0 18px 42px rgba(55,78,255,.32)}
.button-outline{border-color:rgba(199,204,209,.26);background:rgba(255,255,255,.02);color:#fff}
.button-outline:hover{border-color:rgba(123,61,255,.7);background:rgba(123,61,255,.08)}
.button-ghost{color:var(--muted)}.button-ghost:hover{color:#fff;background:rgba(255,255,255,.05)}
.button-small{min-height:42px;padding:9px 17px;font-size:13px}.button-full{width:100%}.button-group{display:flex;flex-wrap:wrap;gap:12px}
.text-link{display:inline-flex;align-items:center;gap:8px;color:#fff;font-weight:700}.text-link span{color:#8c6dff;transition:transform var(--transition)}.text-link:hover span{transform:translateX(5px)}
.text-link-large{font-size:18px}
.eyebrow{margin:0 0 18px;color:#a98eff;font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase}.eyebrow a{color:inherit}
h1,h2,h3{margin:0;font-weight:650;letter-spacing:-.035em;line-height:1.08}h1{font-size:clamp(38px,5vw,68px)}h2{font-size:clamp(30px,3.6vw,50px)}h3{font-size:22px}p{margin:0}

.hero{position:relative;min-height:calc(100svh - 88px);overflow:hidden;display:flex;align-items:center;padding:100px 0 130px;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;z-index:-3;background:radial-gradient(circle at 70% 35%,rgba(74,44,196,.18),transparent 28%),radial-gradient(circle at 40% 0%,rgba(13,107,255,.08),transparent 32%),var(--bg)}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to bottom,black,transparent 78%)}
.hero-background{position:absolute;inset:auto 0 0;z-index:-2;height:55%;background:linear-gradient(to top,rgba(10,10,15,.08),rgba(10,10,15,1)),url("../img/hero-montanas.webp") center bottom/cover no-repeat;opacity:.62}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(380px,.92fr);align-items:center;gap:40px}
.hero-copy{position:relative;z-index:2;max-width:760px}.hero-copy h1{max-width:780px}
.hero-lead{max-width:690px;margin:30px 0;color:var(--muted);font-size:clamp(19px,2vw,24px)}
.hero-trust{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:36px;color:var(--muted-2);font-size:13px}
.hero-trust span{display:inline-flex;align-items:center;gap:8px}.hero-trust span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gradient)}
.hero-symbol{position:relative;min-height:560px;display:grid;place-items:center}
.symbol-core{position:relative;z-index:2;width:min(420px,86%);aspect-ratio:1;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle,rgba(123,61,255,.12),transparent 68%)}
.symbol-core img{width:92%;filter:drop-shadow(0 0 26px rgba(123,61,255,.2))}
.orbit{position:absolute;border:1px solid rgba(123,61,255,.25);border-radius:50%}.orbit-one{width:80%;aspect-ratio:1;animation:spin 28s linear infinite}
.orbit-one::before,.orbit-two::before{content:"";position:absolute;top:-5px;left:50%;width:10px;height:10px;border-radius:50%;background:#fff;box-shadow:0 0 18px #7B3DFF,0 0 32px #0D6BFF}
.orbit-two{width:96%;aspect-ratio:1;border-color:rgba(13,107,255,.14);animation:spin-reverse 40s linear infinite}
.signal{position:absolute;z-index:3;padding:8px 12px;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(18,22,28,.78);color:var(--muted);font-size:12px;backdrop-filter:blur(10px)}
.signal-one{top:16%;left:1%}.signal-two{right:-2%;top:45%}.signal-three{bottom:14%;left:8%}
.scroll-cue{position:absolute;bottom:28px;left:50%;display:flex;align-items:center;gap:12px;transform:translateX(-50%);color:var(--muted-2);font-size:11px;letter-spacing:.16em;text-transform:uppercase}
.scroll-cue i{display:block;width:34px;height:1px;background:var(--gradient)}
@keyframes spin{to{transform:rotate(360deg)}}@keyframes spin-reverse{to{transform:rotate(-360deg)}}

.section-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);align-items:end;gap:56px;margin-bottom:54px}.section-heading h2{max-width:800px}.section-heading>p{max-width:500px;color:var(--muted)}
.section-action{margin-top:42px;text-align:center}.section-label{display:flex;gap:16px;align-items:flex-start;color:var(--muted)}
.section-label span{color:#8c6dff;font-size:13px;font-weight:800}.section-label p{font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.purpose-section{border-top:1px solid rgba(255,255,255,.06);border-bottom:1px solid rgba(255,255,255,.06);background:linear-gradient(110deg,rgba(123,61,255,.055),transparent 35%)}
.purpose-grid,.narrow-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:70px}.purpose-copy{max-width:880px}
.purpose-statement{margin-bottom:22px;color:#fff;font-size:clamp(34px,4.5vw,64px);font-weight:600;letter-spacing:-.04em;line-height:1.08}
.purpose-copy>p:last-child{max-width:700px;color:var(--muted);font-size:22px}

.services-preview,.service-index{background:var(--surface)}
.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.service-grid-large{grid-template-columns:repeat(3,minmax(0,1fr))}
.service-card{min-height:330px;display:flex;flex-direction:column;padding:28px;border:1px solid rgba(199,204,209,.1);border-radius:var(--radius);background:linear-gradient(160deg,rgba(255,255,255,.025),rgba(255,255,255,.006));transition:transform var(--transition),border-color var(--transition),background var(--transition)}
.service-card:hover{transform:translateY(-5px);border-color:rgba(123,61,255,.45);background:linear-gradient(160deg,rgba(123,61,255,.09),rgba(13,107,255,.025))}
.service-icon{width:50px;height:50px;display:grid;place-items:center;margin-bottom:48px;border:1px solid rgba(123,61,255,.35);border-radius:15px;color:#a58aff;background:rgba(123,61,255,.08)}
.service-icon svg{width:25px;height:25px}.service-card h3{margin-bottom:14px}.service-card p{color:var(--muted)}.service-card .text-link{margin-top:auto;padding-top:30px;font-size:14px}

.process-preview{overflow:hidden}.process-line{display:grid;grid-template-columns:repeat(4,1fr);margin:0;padding:0;list-style:none}
.process-line li{position:relative;min-height:245px;padding:24px 28px 28px 0;border-top:1px solid var(--line)}
.process-line li::before{content:"";position:absolute;top:-4px;left:0;width:8px;height:8px;border-radius:50%;background:#8f6cff;box-shadow:0 0 18px rgba(123,61,255,.55)}
.process-line span{color:#8066dc;font-size:12px;font-weight:800}.process-line h3{margin:24px 0 12px}.process-line p{max-width:245px;color:var(--muted);font-size:14px}

.philosophy-section{background:linear-gradient(135deg,#10131a,#0b0c12);border-block:1px solid rgba(255,255,255,.06)}
.philosophy-grid{display:grid;grid-template-columns:.85fr 1.15fr;align-items:center;gap:90px}
.philosophy-mark{position:relative;min-height:430px;display:grid;place-items:center;border:1px solid rgba(123,61,255,.18);border-radius:var(--radius-lg);overflow:hidden;background:radial-gradient(circle at center,rgba(123,61,255,.15),transparent 50%)}
.philosophy-mark::before,.philosophy-mark::after{content:"";position:absolute;border:1px solid rgba(255,255,255,.07);border-radius:50%}
.philosophy-mark::before{width:280px;height:280px}.philosophy-mark::after{width:430px;height:430px}
.philosophy-mark span{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:100%;writing-mode:vertical-rl;text-orientation:mixed;color:rgba(255,255,255,.9);font-family:serif;font-size:64px;letter-spacing:.12em;line-height:1;text-align:center;padding:24px 0}
.philosophy-mark div{position:absolute;width:1px;height:100%;background:linear-gradient(transparent,rgba(123,61,255,.8),transparent);transform:rotate(28deg)}
.philosophy-copy h2{margin-bottom:28px}.philosophy-copy>p:not(.eyebrow){max-width:650px;margin-bottom:28px;color:var(--muted);font-size:19px}

.projects-preview,.projects-index{background:var(--bg)}
.project-grid,.project-grid-index{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;align-items:stretch}
.project-card{display:grid;grid-template-columns:1fr;grid-template-rows:300px 1fr;min-height:650px;overflow:hidden;border:1px solid rgba(199,204,209,.11);border-radius:var(--radius-lg);background:var(--surface)}
.project-card:not(.project-card-featured){grid-template-columns:1fr;grid-template-rows:300px 1fr}.project-card:not(.project-card-featured) .project-visual{min-height:300px}
.project-visual{position:relative;min-height:300px;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 35% 35%,rgba(123,61,255,.34),transparent 28%),radial-gradient(circle at 70% 72%,rgba(13,107,255,.28),transparent 34%),#0b0d14}
.project-visual::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:38px 38px;mask-image:radial-gradient(circle,black,transparent 78%)}
.project-visual span{position:relative;z-index:2;color:#fff;font-size:clamp(42px,6vw,88px);font-weight:800;letter-spacing:-.07em}.project-logo{position:relative;z-index:2;width:62%;height:62%;max-width:270px;max-height:220px;object-fit:contain;filter:drop-shadow(0 12px 30px rgba(0,0,0,.22))}.project-logo-large{width:62%;height:62%;max-width:360px;max-height:360px}
.project-visual i{position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%}.project-visual i:nth-child(2){width:180px;height:180px}.project-visual i:nth-child(3){width:280px;height:280px}.project-visual i:nth-child(4){width:380px;height:380px}
.project-content{display:flex;flex-direction:column;padding:38px}.project-content h3{margin-bottom:16px;font-size:30px}.project-content>p:not(.eyebrow){color:var(--muted)}
.tag-list{display:flex;flex-wrap:wrap;gap:8px;margin:26px 0;padding:0;list-style:none}.tag-list li,.post-category{padding:7px 10px;border:1px solid rgba(199,204,209,.12);border-radius:999px;color:var(--muted);background:rgba(255,255,255,.025);font-size:11px}.project-content .text-link{margin-top:auto}

.story-preview{background:var(--surface)}.story-grid{display:grid;grid-template-columns:1.08fr .92fr;align-items:center;gap:70px}
.story-visual{position:relative;overflow:hidden;border-radius:var(--radius-lg);display:grid;place-items:end stretch;background:radial-gradient(circle at center,rgba(123,61,255,.12),transparent 46%),var(--bg)}.story-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,10,15,.92),transparent 48%)}
.story-visual img{display:block;width:100%;height:auto;object-fit:unset;object-position:center center}.story-caption{position:absolute;z-index:2;left:28px;bottom:24px;color:var(--muted);font-size:12px;letter-spacing:.16em;text-transform:uppercase}
.story-copy h2{margin-bottom:26px}.story-copy>p:not(.eyebrow){margin-bottom:18px;color:var(--muted);font-size:18px}.story-copy .button{margin-top:18px}

.insights-preview{background:var(--bg)}.post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.post-card{min-height:390px;display:flex;flex-direction:column;padding:28px;border:1px solid rgba(199,204,209,.11);border-radius:var(--radius);background:var(--surface);transition:transform var(--transition),border-color var(--transition)}
.post-card:hover{transform:translateY(-4px);border-color:rgba(13,107,255,.4)}
.post-card-top,.post-meta{display:flex;justify-content:space-between;align-items:center;gap:16px;color:var(--muted-2);font-size:12px}
.post-card h3{margin:42px 0 18px;font-size:27px}.post-card h3 a:hover{color:#b5a3ff}.post-card>p{color:var(--muted)}
.post-meta{margin-top:auto;padding-top:30px;border-top:1px solid rgba(255,255,255,.08)}.post-meta .text-link{font-size:13px}

.contact-cta{padding-top:40px}.contact-cta-inner{display:flex;align-items:center;justify-content:space-between;gap:60px;padding:58px;border:1px solid rgba(123,61,255,.26);border-radius:var(--radius-lg);background:radial-gradient(circle at 0 100%,rgba(123,61,255,.16),transparent 36%),radial-gradient(circle at 100% 0,rgba(13,107,255,.12),transparent 34%),var(--surface)}
.contact-cta-inner h2{max-width:780px;margin-bottom:18px}.contact-cta-inner p:not(.eyebrow){max-width:760px;color:var(--muted)}.contact-cta-inner .button{flex:none}

.page-hero{position:relative;overflow:hidden;padding:112px 0 78px;border-bottom:1px solid rgba(255,255,255,.07);background:radial-gradient(circle at 76% 20%,rgba(123,61,255,.13),transparent 25%),linear-gradient(180deg,rgba(18,22,28,.75),var(--bg))}
.page-hero::after{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.02) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.02) 1px,transparent 1px);background-size:60px 60px;mask-image:linear-gradient(to bottom,black,transparent);pointer-events:none}
.page-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:center;gap:60px}.page-hero h1{font-size:clamp(34px,4.2vw,56px);max-width:22ch;line-height:1.06}.page-hero-lead{color:var(--muted);font-size:18px;line-height:1.7}
.prose-large h2{margin-bottom:30px}.prose-large p{margin-bottom:22px;color:var(--muted);font-size:19px}.prose-large strong{color:#fff}

.values-section{background:var(--surface)}.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.value-card{min-height:270px;padding:28px;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);background:rgba(255,255,255,.018)}.value-card>span{color:#8066dc;font-size:12px;font-weight:800}.value-card h3{margin:45px 0 14px}.value-card p{color:var(--muted)}
.monozukuri-grid{display:grid;grid-template-columns:.72fr 1.28fr;align-items:center;gap:90px}.monozukuri-symbol{display:flex;min-height:500px;align-items:center;justify-content:center;gap:18px;padding:18px;border:1px solid rgba(123,61,255,.18);border-radius:var(--radius-lg);background:radial-gradient(circle at center,rgba(123,61,255,.16),transparent 54%);font-family:serif;font-size:clamp(60px,8vw,105px);text-align:center}
.monozukuri-grid h2{margin-bottom:28px}.monozukuri-grid p:not(.eyebrow){margin-bottom:20px;color:var(--muted);font-size:18px}
.principle-list{margin-top:36px;border-top:1px solid var(--line)}.principle-list div{display:grid;grid-template-columns:180px 1fr;gap:24px;padding:20px 0;border-bottom:1px solid var(--line)}.principle-list span{color:var(--muted)}
.consilio-section{background:var(--surface)}.consilio-inner,.split-callout{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;max-width:1120px;margin:0 auto;padding:55px;border:1px solid rgba(255,255,255,.09);border-radius:var(--radius-lg);background:rgba(255,255,255,.016)}
.consilio-inner h2,.split-callout h2{font-size:clamp(36px,4vw,56px)}.consilio-inner>div:last-child p,.split-callout>div:last-child p{margin-bottom:20px;color:var(--muted);font-size:18px}.consilio-inner .text-link{margin-top:12px}

.not-a-catalog,.methodology-principles,.project-note{padding-top:0;background:var(--surface)}
.detail-hero,.project-detail-hero{padding:120px 0 90px;background:linear-gradient(180deg,rgba(18,22,28,.9),var(--bg));border-bottom:1px solid rgba(255,255,255,.07)}
.detail-hero-grid{display:grid;grid-template-columns:190px 1fr;align-items:center;gap:60px}.detail-icon{width:170px;height:170px;display:grid;place-items:center;border:1px solid rgba(123,61,255,.3);border-radius:42px;color:#a58aff;background:radial-gradient(circle,rgba(123,61,255,.14),transparent 68%)}.detail-icon svg{width:80px;height:80px}
.detail-hero h1{font-size:clamp(34px,4.5vw,60px)}.detail-hero p:not(.eyebrow){max-width:850px;margin-top:26px;color:var(--muted);font-size:21px}
.service-detail-grid{display:grid;grid-template-columns:330px 1fr;align-items:start;gap:80px}.detail-sidebar{position:sticky;top:130px;padding:28px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);background:var(--surface)}
.sidebar-label{margin-bottom:12px;color:#a98eff;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.detail-sidebar>p:not(.sidebar-label){margin-bottom:26px;color:var(--muted)}
.detail-main>h2,.honesty-note h2{margin-bottom:20px;font-size:38px}.check-list{display:grid;gap:0;margin:0 0 60px;padding:0;list-style:none}
.check-list li{position:relative;padding:18px 0 18px 36px;border-bottom:1px solid var(--line);color:var(--muted);font-size:18px}.check-list li::before{content:"";position:absolute;left:0;top:27px;width:13px;height:7px;border-left:2px solid #8f6cff;border-bottom:2px solid #8f6cff;transform:rotate(-45deg)}
.outcome-block{margin-bottom:38px;padding:36px;border-radius:var(--radius);background:linear-gradient(135deg,rgba(123,61,255,.13),rgba(13,107,255,.06))}.outcome-block>p:last-child{color:#fff;font-size:24px}
.honesty-note{display:grid;grid-template-columns:74px 1fr;align-items:center;gap:18px;padding:36px;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);background:linear-gradient(180deg,rgba(255,255,255,.015),rgba(255,255,255,.01))}.honesty-note p{color:var(--muted);font-size:18px}.honesty-content h2{line-height:1.05}.honesty-alert{position:relative;display:grid;place-items:center;width:74px;height:74px}.honesty-alert span{position:relative;z-index:1;display:block;font-size:88px;font-weight:900;line-height:.8;color:#050505;text-shadow:0 0 5px rgba(255,80,80,.22),0 0 12px rgba(255,40,40,.18),0 0 22px rgba(255,30,30,.15),1px 0 0 #a90f0f,-1px 0 0 #7e0b0b,0 1px 0 #a90f0f,0 -1px 0 #7e0b0b;animation:honestyPulse 2.15s ease-in-out infinite}

.methodology-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.methodology-step{display:grid;grid-template-columns:230px minmax(0,1fr) 230px;align-items:center;gap:32px;padding:36px 0;border-bottom:1px solid var(--line)}
.methodology-step h2{font-size:34px}.methodology-step>p{color:var(--muted)}
.methodology-output{padding:18px;border-radius:var(--radius-sm);background:var(--surface)}.methodology-output span{display:block;margin-bottom:5px;color:var(--muted-2);font-size:11px;letter-spacing:.12em;text-transform:uppercase}.methodology-output strong{font-size:14px}

.project-detail-grid{display:grid;grid-template-columns:.82fr 1.18fr;align-items:center;gap:80px}.project-visual-large{min-height:500px;border-radius:var(--radius-lg)}
.project-detail-grid h1{margin-bottom:24px;font-size:clamp(34px,4.5vw,60px)}.project-detail-grid>div:last-child>p:not(.eyebrow){color:var(--muted);font-size:21px}
.external-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.case-study{background:var(--surface)}.case-study-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.case-section{padding:34px;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);background:rgba(255,255,255,.015)}.case-section h2{margin-bottom:22px;font-size:34px}.case-section p:last-child{color:var(--muted)}
.deliverable-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.deliverable-grid li{min-height:110px;display:flex;align-items:flex-start;gap:18px;padding:26px 22px 26px 0;border-bottom:1px solid var(--line);color:var(--muted)}.deliverable-grid span{color:#8066dc;font-size:12px;font-weight:800}

.filter-bar{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:34px}.filter-bar button{padding:9px 15px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;transition:var(--transition)}
.filter-bar button:hover,.filter-bar button.is-active{border-color:rgba(123,61,255,.7);background:rgba(123,61,255,.12);color:#fff}.post-grid-index{grid-template-columns:repeat(3,1fr)}.empty-state{padding:60px 0;color:var(--muted);text-align:center}.editorial-note{background:var(--surface)}
.article-header{padding:130px 0 80px;background:radial-gradient(circle at 50% 0,rgba(123,61,255,.16),transparent 32%),var(--bg);border-bottom:1px solid rgba(255,255,255,.07)}
.article-header-inner{max-width:940px}.article-header h1{font-size:clamp(34px,4.8vw,62px)}.article-header>.container>p:not(.eyebrow){max-width:800px;margin-top:28px;color:var(--muted);font-size:22px}
.article-meta{display:flex;flex-wrap:wrap;gap:10px 26px;margin-top:34px;color:var(--muted-2);font-size:13px}
.article-layout{display:grid;grid-template-columns:230px minmax(0,760px);justify-content:center;align-items:start;gap:70px;padding-top:90px;padding-bottom:110px}
.article-aside{position:sticky;top:130px;padding-top:18px;border-top:2px solid #7b3dff}.article-aside span{color:#a98eff;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.article-aside p{margin:14px 0 20px;color:var(--muted);font-size:14px}.article-aside a{font-size:14px;font-weight:700}
.article-content{color:var(--muted);font-size:19px}.article-content h2{margin:56px 0 22px;color:#fff;font-size:38px}.article-content p{margin-bottom:24px}.article-content .article-lead{color:#fff;font-size:25px;line-height:1.55}
.article-content ul{margin:30px 0;padding-left:24px}.article-content li{margin-bottom:12px;padding-left:8px}.article-content blockquote{margin:48px 0;padding:4px 0 4px 30px;border-left:3px solid #7b3dff;color:#fff;font-size:27px;line-height:1.45}.article-content blockquote p{margin:0}.article-next{background:var(--surface)}


/* Contact */
.contact-hero {
  padding-bottom: 78px;
}

.contact-grid {
  display: grid;
  grid-template-columns: minmax(0, .84fr) minmax(0, 1.16fr);
  gap: 72px;
  align-items: start;
}

.contact-info {
  position: sticky;
  top: 126px;
}

.contact-info h2 {
  margin-bottom: 22px;
  font-size: clamp(34px, 4vw, 54px);
}

.contact-info > p:not(.eyebrow) {
  color: var(--muted);
  font-size: 18px;
}

.contact-promises {
  margin-top: 34px;
  border-top: 1px solid var(--line);
}

.contact-promises > div {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 18px;
  padding: 20px 0;
  border-bottom: 1px solid var(--line);
}

.contact-promises span {
  color: #987cff;
  font-size: 12px;
  font-weight: 800;
}

.contact-promises p {
  color: var(--muted);
}

.social-contact {
  margin-top: 34px;
}

.social-contact > p {
  margin-bottom: 14px;
  color: var(--muted-2);
  font-size: 12px;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
}

.social-links a {
  min-width: 42px;
  min-height: 42px;
  display: inline-grid;
  place-items: center;
  padding: 8px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  transition: color var(--transition), border-color var(--transition), background var(--transition);
}

.social-links a:hover {
  color: #fff;
  border-color: rgba(123, 61, 255, .65);
  background: rgba(123, 61, 255, .1);
}

.contact-form-wrap {
  padding: clamp(28px, 4vw, 46px);
  border: 1px solid rgba(199, 204, 209, .12);
  border-radius: var(--radius-lg);
  background:
    linear-gradient(145deg, rgba(255, 255, 255, .025), rgba(255, 255, 255, 0)),
    var(--surface);
}

.contact-form {
  display: grid;
  gap: 22px;
}

.field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
}

.field {
  display: grid;
  gap: 8px;
}

.field label {
  color: #fff;
  font-size: 14px;
  font-weight: 700;
}

.field label span,
.required-note span {
  color: #ff8e8e;
}

.field input,
.field select,
.field textarea {
  width: 100%;
  min-height: 50px;
  padding: 12px 15px;
  border: 1px solid var(--line);
  border-radius: 13px;
  outline: none;
  background: rgba(10, 10, 15, .72);
  color: #fff;
  transition: border-color var(--transition), box-shadow var(--transition), background var(--transition);
}

.field textarea {
  min-height: 180px;
  resize: vertical;
}

.field input:focus,
.field select:focus,
.field textarea:focus {
  border-color: var(--violet);
  background: #0d1016;
  box-shadow: 0 0 0 4px rgba(123, 61, 255, .14);
}

.field select {
  color-scheme: dark;
}

.field-help {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  color: var(--muted-2);
  font-size: 12px;
}

.field-error {
  color: #ffb4b4;
  font-size: 12px;
}

.field.is-invalid input,
.field.is-invalid select,
.field.is-invalid textarea,
.field input[aria-invalid="true"],
.field select[aria-invalid="true"],
.field textarea[aria-invalid="true"] {
  border-color: rgba(255, 112, 112, .78);
  box-shadow: 0 0 0 4px rgba(255, 112, 112, .12);
  background: rgba(41, 14, 18, .52);
}

.check-field.is-invalid {
  padding: 12px 14px;
  border: 1px solid rgba(255, 112, 112, .45);
  border-radius: var(--radius-sm);
  background: rgba(151, 43, 43, .08);
}

.required-note {
  margin-top: -6px;
  color: var(--muted-2);
  font-size: 12px;
}

.privacy-summary {
  padding: 18px 19px;
  border: 1px solid rgba(123,61,255,.22);
  border-radius: var(--radius-sm);
  background: rgba(123,61,255,.07);
  color: var(--muted);
}

.privacy-summary strong {
  display: block;
  margin-bottom: 7px;
  color: #fff;
  font-size: 14px;
}

.privacy-summary p {
  font-size: 13px;
  line-height: 1.65;
}

.privacy-summary a,
.form-message a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--violet);
  text-underline-offset: 3px;
}

.check-field {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  color: var(--muted);
  font-size: 13px;
  cursor: pointer;
}

.check-field input {
  width: 17px;
  height: 17px;
  margin-top: 3px;
  flex: 0 0 auto;
  accent-color: var(--violet);
}

.check-field a {
  color: #fff;
  text-decoration: underline;
  text-decoration-color: var(--violet);
  text-underline-offset: 3px;
}

.form-message {
  margin-bottom: 26px;
  padding: 17px 19px;
  border: 1px solid;
  border-radius: var(--radius-sm);
}

.form-message strong {
  display: block;
  margin-bottom: 4px;
}

.form-message p {
  font-size: 14px;
}

.form-success {
  border-color: rgba(65, 211, 127, .36);
  background: rgba(38, 145, 85, .15);
  color: #dcffe9;
}

.form-error {
  border-color: rgba(255, 112, 112, .36);
  background: rgba(151, 43, 43, .14);
  color: #ffe0e0;
}

.form-disclaimer {
  color: var(--muted-2);
  font-size: 12px;
  text-align: center;
}

.honeypot {
  position: absolute !important;
  left: -10000px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

/* Legal pages */
.legal-hero {
  padding: 128px 0 70px;
  border-bottom: 1px solid rgba(255,255,255,.07);
  background: radial-gradient(circle at 75% 25%, rgba(123,61,255,.13), transparent 28%), var(--surface);
}

.legal-hero h1 {
  margin-bottom: 22px;
  font-size: clamp(48px, 6vw, 78px);
}

.legal-hero p:last-child {
  max-width: 720px;
  color: var(--muted);
  font-size: 19px;
}

.legal-content {
  max-width: 820px;
}

.legal-content > p:first-child {
  color: var(--muted-2);
  font-size: 13px;
}

.legal-content h2 {
  margin: 48px 0 16px;
  font-size: clamp(28px, 3vw, 38px);
  scroll-margin-top: 120px;
}

.legal-content p,
.legal-content li {
  color: var(--muted);
  font-size: 17px;
}

.legal-content ul,
.legal-content ol {
  padding-left: 24px;
}

.legal-content li {
  margin-bottom: 10px;
}

.legal-warning {
  margin-top: 46px;
  padding: 20px 22px;
  border: 1px solid rgba(255, 184, 77, .3);
  border-radius: var(--radius-sm);
  background: rgba(133, 86, 17, .14);
  color: #ffe6bd;
}

.legal-warning strong {
  color: #fff;
}


.legal-disclaimer {
  margin-top: 34px;
  padding: 18px 20px;
  border-left: 3px solid rgba(123,61,255,.75);
  border-radius: 0 var(--radius-sm) var(--radius-sm) 0;
  background: rgba(123,61,255,.07);
}

/* Not found */
.not-found {
  min-height: 72svh;
  display: grid;
  place-items: center;
  padding: 100px 0;
  text-align: center;
  background: radial-gradient(circle at 50% 32%, rgba(123,61,255,.14), transparent 29%);
}

.not-found-inner {
  max-width: 800px;
}

.error-code {
  margin-bottom: 22px;
  color: transparent;
  -webkit-text-stroke: 1px rgba(199,204,209,.42);
  font-size: clamp(88px, 18vw, 190px);
  font-weight: 800;
  letter-spacing: -.08em;
  line-height: .8;
}

.not-found h1 {
  margin-bottom: 22px;
  font-size: clamp(42px, 5vw, 64px);
}

.not-found > .container > p:not(.eyebrow),
.not-found-inner > p:not(.eyebrow) {
  max-width: 620px;
  margin: 0 auto 30px;
  color: var(--muted);
  font-size: 18px;
}

.not-found .button-group {
  justify-content: center;
}

/* Footer */
.site-footer {
  position: relative;
  overflow: hidden;
  border-top: 1px solid rgba(199,204,209,.1);
  background: #08080c;
}

.site-footer::before {
  content: "";
  position: absolute;
  top: -280px;
  right: -180px;
  width: 480px;
  height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(13,107,255,.16), transparent 68%);
  pointer-events: none;
}

.footer-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(260px, 1.45fr) repeat(3, minmax(130px, .7fr));
  gap: 52px;
  padding: 72px 0 50px;
}

.footer-brand img {
  width: 146px;
  margin: 0 auto 20px;
  display: block;
}

.footer-brand p {
  max-width: 430px;
  margin: 0 auto;
  color: var(--muted);
  font-size: 14px;
  text-align: center;
}

.footer-grid h2 {
  margin-bottom: 18px;
  color: #fff;
  font-size: 12px;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.footer-links {
  display: grid;
  gap: 9px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.footer-links a {
  color: var(--muted);
  font-size: 14px;
}

.footer-links a:hover {
  color: #fff;
}

.footer-note {
  margin-top: 18px;
  color: var(--muted-2);
  font-size: 12px;
}

.footer-brand {
  text-align: center;
}

.footer-bottom {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  gap: 24px;
  padding: 19px 0 23px;
  border-top: 1px solid rgba(199,204,209,.1);
  color: var(--muted-2);
  font-size: 12px;
}

/* Progressive animation */
.reveal {
  opacity: 1;
  transform: none;
}

body.js-enabled .reveal {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity .62s ease, transform .62s ease;
}

body.js-enabled .reveal.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* Responsive */
@media (max-width: 1100px) {
  .service-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .service-grid-large,
  .post-grid,
  .post-grid-index {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .footer-grid {
    grid-template-columns: minmax(260px, 1.3fr) repeat(2, minmax(130px, .8fr));
  }

  .footer-grid > div:last-child {
    grid-column: 2 / -1;
  }
}

@media (max-width: 900px) {
  .section {
    padding: 82px 0;
  }

  .nav-toggle {
    display: block;
    position: relative;
    z-index: 2;
  }

  .nav-toggle[aria-expanded="true"] span:nth-of-type(2) {
    transform: translateY(7px) rotate(45deg);
  }

  .nav-toggle[aria-expanded="true"] span:nth-of-type(3) {
    opacity: 0;
  }

  .nav-toggle[aria-expanded="true"] span:nth-of-type(4) {
    transform: translateY(-7px) rotate(-45deg);
  }

  .primary-nav {
    position: absolute;
    top: calc(100% + 1px);
    left: 0;
    right: 0;
    display: grid;
    gap: 18px;
    padding: 18px 20px 28px;
    border-bottom: 1px solid var(--line);
    background: rgba(10,10,15,.98);
    backdrop-filter: blur(18px);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    pointer-events: none;
    transition: visibility var(--transition), opacity var(--transition), transform var(--transition);
  }

  .primary-nav.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .primary-nav ul {
    display: grid;
    gap: 0;
  }

  .primary-nav ul a {
    display: block;
    padding: 12px 0;
    border-bottom: 1px solid rgba(199,204,209,.08);
    font-size: 16px;
  }

  .primary-nav ul a::after {
    display: none;
  }

  .nav-actions {
    justify-content: space-between;
  }

  .hero {
    min-height: auto;
    padding: 85px 0 100px;
  }

  .hero-grid,
  .section-heading,
  .page-hero-grid,
  .purpose-grid,
  .narrow-grid,
  .philosophy-grid,
  .story-grid,
  .monozukuri-grid,
  .consilio-inner,
  .split-callout,
  .detail-hero-grid,
  .service-detail-grid,
  .project-detail-grid,
  .contact-grid {
    grid-template-columns: 1fr;
  }

  .hero-symbol {
    min-height: 470px;
  }

  .section-heading {
    gap: 24px;
  }

  .purpose-grid,
  .narrow-grid,
  .philosophy-grid,
  .story-grid,
  .monozukuri-grid,
  .consilio-inner,
  .split-callout {
    gap: 44px;
  }

  .process-line {
    grid-template-columns: repeat(2, 1fr);
  }

  .project-grid,
  .project-grid-index {
    grid-template-columns: 1fr;
  }

  .project-card,
  .project-card:not(.project-card-featured) {
    grid-template-columns: 1fr;
    grid-template-rows: 280px 1fr;
    min-height: 620px;
  }

  .project-card .project-visual,
  .project-card:not(.project-card-featured) .project-visual {
    min-height: 280px;
  }

  .values-grid,
  .case-study-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .methodology-step {
    grid-template-columns: 180px 1fr;
  }

  .methodology-output {
    grid-column: 2;
  }

  .deliverable-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .detail-sidebar,
  .article-aside,
  .contact-info {
    position: static;
  }

  .article-layout {
    grid-template-columns: 1fr;
    gap: 38px;
  }

  .article-aside {
    max-width: 680px;
  }

  .contact-grid {
    gap: 46px;
  }

  .footer-grid {
    grid-template-columns: repeat(2, 1fr);
  }

  .footer-brand,
  .footer-grid > div:last-child {
    grid-column: 1 / -1;
  }
}

@media (max-width: 640px) {
  :root {
    --container: min(1180px, calc(100% - 28px));
  }

  .section {
    padding: 66px 0;
  }

  .header-inner {
    min-height: 74px;
  }

  .brand {
    width: 88px;
  }

  .primary-nav {
    padding-inline: 14px;
  }

  .nav-actions .button {
    display: none;
  }

  h1 {
    font-size: clamp(34px, 10vw, 50px);
  }

  h2 {
    font-size: clamp(30px, 9vw, 44px);
  }

  .hero {
    padding: 64px 0 82px;
  }

  .hero-copy h1 {
    font-size: clamp(38px, 11.5vw, 54px);
  }

  .hero-lead {
    margin: 24px 0;
  }

  .button-group {
    flex-direction: column;
    align-items: stretch;
  }

  .button-group .button {
    width: 100%;
  }

  .hero-symbol {
    min-height: 350px;
  }

  .signal {
    font-size: 10px;
  }

  .scroll-cue {
    display: none;
  }

  .purpose-copy > p:last-child {
    font-size: 18px;
  }

  .service-grid,
  .service-grid-large,
  .post-grid,
  .post-grid-index,
  .values-grid,
  .case-study-grid,
  .field-grid,
  .footer-grid {
    grid-template-columns: 1fr;
  }

  .service-card {
    min-height: 300px;
  }

  .process-line {
    grid-template-columns: 1fr;
  }

  .process-line li {
    min-height: 190px;
  }

  .philosophy-mark,
  .story-visual,
  .monozukuri-symbol {
    min-height: 360px;
  }

  .project-card,
  .project-card:not(.project-card-featured) {
    grid-template-columns: 1fr;
    grid-template-rows: 240px auto;
    min-height: 0;
  }

  .project-card .project-visual,
  .project-card:not(.project-card-featured) .project-visual {
    min-height: 240px;
  }

  .project-logo {
    width: 58%;
    height: 58%;
    max-width: 220px;
    max-height: 180px;
  }

  .contact-cta-inner {
    flex-direction: column;
    align-items: flex-start;
    padding: 34px 26px;
  }

  .page-hero,
  .detail-hero,
  .project-detail-hero,
  .article-header,
  .legal-hero {
    padding: 74px 0 52px;
  }

  .page-hero h1 {
    max-width: none;
    font-size: clamp(32px, 9.5vw, 46px);
  }

  .page-hero-lead {
    font-size: 17px;
  }

  .principle-list div {
    grid-template-columns: 1fr;
    gap: 7px;
  }

  .consilio-inner,
  .split-callout {
    padding: 30px 24px;
  }

  .detail-icon {
    width: 112px;
    height: 112px;
    border-radius: 28px;
  }

  .detail-icon svg {
    width: 54px;
    height: 54px;
  }

  .methodology-step {
    grid-template-columns: 1fr;
    gap: 18px;
  }

  .methodology-step > p,
  .methodology-output {
    grid-column: 1;
  }

  .deliverable-grid {
    grid-template-columns: 1fr;
  }

  .project-visual-large {
    min-height: 330px;
  }

  .filter-bar {
    overflow-x: auto;
    flex-wrap: nowrap;
    padding-bottom: 8px;
  }

  .filter-bar button {
    flex: 0 0 auto;
  }

  .article-layout {
    padding-top: 62px;
    padding-bottom: 76px;
  }

  .article-content {
    font-size: 17px;
  }

  .article-content h2 {
    margin-top: 44px;
    font-size: 31px;
  }

  .article-content .article-lead {
    font-size: 21px;
  }

  .article-content blockquote {
    padding-left: 20px;
    font-size: 23px;
  }

  .field-help {
    align-items: flex-start;
    flex-direction: column;
  }

  .contact-form-wrap {
    padding: 26px 20px;
  }

  .footer-brand,
  .footer-grid > div:last-child {
    grid-column: auto;
  }

  .footer-bottom {
    flex-direction: column;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
    scroll-behavior: auto !important;
  }

  body.js-enabled .reveal {
    opacity: 1;
    transform: none;
  }
}

@media print {
  .site-header,
  .site-footer,
  .scroll-cue,
  .filter-bar,
  .button {
    display: none !important;
  }

  body {
    background: #fff;
    color: #111;
  }
}

@media (max-width: 720px) {
  .honesty-note{grid-template-columns:1fr;justify-items:start;gap:10px;padding:28px}
  .honesty-alert{width:60px;height:60px}
  .honesty-alert span{font-size:70px}
}

@keyframes honestyPulse {
  0%,100% { transform: scale(1); filter: drop-shadow(0 0 0 rgba(255,60,60,.22)); }
  50% { transform: scale(1.08); filter: drop-shadow(0 0 10px rgba(255,50,50,.28)) drop-shadow(0 0 22px rgba(255,20,20,.18)); }
}
