:root{--bg: #fbfbfd;--text: #1d1d1f;--text-secondary: #424245;--text-muted: #86868b;--text-tertiary: #aeaeb2;--accent: #0071e3;--card-bg: #ffffff;--card-border: rgba(0, 0, 0, .04);--card-border-hover: rgba(0, 0, 0, .07);--card-shadow: 0 0 0 .5px rgba(0, 0, 0, .04), 0 2px 4px rgba(0, 0, 0, .02), 0 12px 32px rgba(0, 0, 0, .06), 0 24px 48px rgba(0, 0, 0, .03);--card-shadow-hover: 0 0 0 .5px rgba(0, 0, 0, .05), 0 4px 12px rgba(0, 0, 0, .05), 0 16px 48px rgba(0, 0, 0, .1), 0 32px 64px rgba(0, 0, 0, .05);--tint-blue: rgba(0, 113, 227, .03);--tint-amber: rgba(255, 159, 10, .025);--tag-bg: rgba(0, 0, 0, .04);--tag-border: rgba(0, 0, 0, .06);--dark-gradient: linear-gradient(145deg, #1d1d1f 0%, #2d2d30 100%);--radius-card: 16px;--ease-apple: cubic-bezier(.25, .1, .25, 1);--ease-out-soft: cubic-bezier(.23, 1, .32, 1);--font-sans: "Inter", system-ui, -apple-system, sans-serif}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;overflow-x:clip}::selection{background:#0071e326;color:var(--text)}.page-bg{position:fixed;inset:0;z-index:0;pointer-events:none}.grid-canvas{position:absolute;inset:0;width:100%;height:100%;mask-image:radial-gradient(ellipse 120% 90% at 50% 0%,black 40%,transparent 100%);-webkit-mask-image:radial-gradient(ellipse 120% 90% at 50% 0%,black 40%,transparent 100%)}.page-bg:after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 60% 40% at 18% 0%,var(--tint-blue),transparent 70%),radial-gradient(ellipse 50% 35% at 85% 8%,var(--tint-amber),transparent 70%)}.wrap{position:relative;z-index:1;max-width:1100px;margin:0 auto;padding:0 clamp(20px,5vw,48px)}.hero{padding-top:clamp(64px,12vh,96px);padding-bottom:clamp(40px,7vh,64px);text-align:center;display:flex;flex-direction:column;align-items:center;gap:24px}.hero-mark{width:clamp(120px,18vw,168px);height:auto}.hero-title{margin:0;font-size:clamp(2.5rem,11vw,4rem);font-weight:700;letter-spacing:-.025em;line-height:1.05}.hero-title .word{display:inline-block;white-space:nowrap}.hero-title .char{display:inline-block}.hero-sub{margin:0;font-size:1.0625rem;line-height:1.5;color:var(--text-secondary);max-width:62ch;text-wrap:balance}.bento{display:grid;grid-template-columns:1fr;gap:16px;padding-bottom:24px}@media(min-width:640px){.bento{grid-template-columns:repeat(2,1fr)}.card-identity,.card-conseil{grid-column:span 2}}@media(min-width:960px){.bento{grid-template-columns:repeat(4,1fr);grid-template-rows:repeat(2,208px)}.card-identity{grid-column:1 / 3;grid-row:1 / 3}.card-conseil{grid-column:3 / 5;grid-row:1}.card-services{grid-column:3 / 4;grid-row:2}.card-logiciels{grid-column:4 / 5;grid-row:2}}.card{position:relative;overflow:hidden;background:var(--card-bg);border:1px solid var(--card-border);border-radius:var(--radius-card);box-shadow:var(--card-shadow);padding:24px;min-height:168px;display:flex;flex-direction:column;justify-content:flex-end;gap:6px;transition:transform .3s var(--ease-apple),box-shadow .3s var(--ease-apple),border-color .3s var(--ease-apple)}@media(hover:hover){.card:hover{transform:translateY(-4px);box-shadow:var(--card-shadow-hover);border-color:var(--card-border-hover)}}.card-title{margin:0;font-size:1.0625rem;font-weight:600;letter-spacing:-.01em;color:var(--text)}.card-desc{margin:0;font-size:.9375rem;line-height:1.5;color:var(--text-muted)}.card-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.tag{display:inline-block;padding:5px 12px;border-radius:100px;font-size:.8125rem;font-weight:500;color:var(--text);background:var(--tag-bg);border:1px solid var(--tag-border)}.card-copy{position:relative;z-index:2;display:flex;flex-direction:column;gap:6px}.ascii-bg,.vault-bg{position:absolute;inset:0;z-index:1;pointer-events:none}.tw-char{display:none}.tw-char.on{display:inline-block}.tw-cursor{display:inline-block;width:3px;height:.85em;margin-left:2px;border-radius:2px;background:currentColor;vertical-align:text-bottom;opacity:.4;animation:cursor-pulse 1.1s step-end infinite}@keyframes cursor-pulse{0%,to{opacity:.4}50%{opacity:0}}.card-identity{background:var(--dark-gradient);border-color:#ffffff14;box-shadow:0 4px 24px #0003,inset 0 1px #ffffff0d;justify-content:flex-start;min-height:400px;gap:0}@media(hover:hover){.card-identity:hover{transform:translateY(-4px);border-color:#ffffff2e;box-shadow:0 12px 40px #0000004d,inset 0 1px #ffffff14}}.card-identity:after{content:"";position:absolute;inset:0;border-radius:var(--radius-card);opacity:.35;transition:opacity .6s var(--ease-apple);pointer-events:none;z-index:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);background-size:80px 80px,80px 80px,16px 16px,16px 16px;mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 20%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black 20%,transparent 75%)}.card-identity:hover:after{opacity:1}.card-identity{--glow-color: rgba(255, 255, 255, .06)}.card-services{--glow-color: rgba(180, 155, 255, .08)}.card-identity:before,.card-services:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .3s;background:radial-gradient(circle at var(--mx, 50%) var(--my, 50%),var(--glow-color) 0%,transparent 50%)}@media(hover:hover){.card-identity:hover:before,.card-services:hover:before{opacity:1}}.identity-mark{position:relative;z-index:2;width:clamp(150px,34vw,200px);height:auto;align-self:center;margin-top:12px}.globe-wrap{position:absolute;left:50%;bottom:0;transform:translate(-50%,52%);width:300px;height:300px;z-index:1;pointer-events:none;mask-image:radial-gradient(circle at 50% 50%,black 40%,transparent 70%);-webkit-mask-image:radial-gradient(circle at 50% 50%,black 40%,transparent 70%)}.globe-canvas{width:300px;height:300px;animation:globe-fade-in 1.5s ease forwards}@keyframes globe-fade-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.identity-meta{position:relative;z-index:3;margin-top:auto;display:flex;flex-direction:column;gap:2px}.identity-name{margin:0;font-size:.9375rem;font-weight:600;letter-spacing:-.01em;color:#f5f5f7}.identity-place{margin:0;font-size:.8125rem;color:#98989d}.card-services{background:linear-gradient(135deg,#0a0a0f,#1e1e2e 60%,#2d1b4e);border-color:#ffffff14;box-shadow:0 4px 24px #00000040,inset 0 1px #ffffff0d}@media(hover:hover){.card-services:hover{transform:translateY(-4px);border-color:#b49bff59;box-shadow:0 12px 40px #2d1b4e73,inset 0 1px #ffffff14}}.ai-glow-border{position:absolute;inset:-1px;border-radius:inherit;padding:1px;background:linear-gradient(135deg,rgba(180,155,255,.5),rgba(122,92,255,.2),transparent 60%);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);mask-composite:exclude;pointer-events:none;z-index:1}.services-title{color:#f5f5f7}.services-sub{color:#98989d}.footer{padding:40px 0 48px;text-align:center;display:flex;flex-direction:column;gap:4px}.footer p{margin:0;font-size:.8125rem;color:var(--text-muted)}.footer .footer-note{color:var(--text-tertiary)}@keyframes char-in{0%{opacity:0;filter:blur(10px);transform:translateY(15px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.hero-title .char{opacity:0;animation:char-in .5s var(--ease-apple) both;animation-delay:calc(.15s + var(--i) * 35ms)}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;animation:fade-up .5s var(--ease-apple) both;animation-delay:var(--d, .6s)}@keyframes card-in{0%{opacity:0;transform:translate(var(--dx, 0),var(--dy, 24px)) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}.card{opacity:0;animation:card-in .7s var(--ease-out-soft) both;animation-delay:calc(.55s + var(--i, 0) * .06s)}@media(prefers-reduced-motion:reduce){.hero-title .char,.reveal,.card,.globe-canvas,.tw-cursor{animation:none;opacity:1;filter:none;transform:none;transition:none}.tw-char{display:inline-block}.card:hover,.card-identity:hover{transform:none}.card-identity:after{transition:none}}
