@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700;800;900&display=swap');
:root { --ink:#1d1d1b; --paper:#fff; --soft:#eef1f2; --accent:#3eaa8d; --line:rgba(29,29,27,.18); --max:1240px; --font:'Montserrat',Arial,Helvetica,sans-serif; --weight-regular:400; --weight-medium:500; --weight-semibold:600; --weight-bold:700; --weight-extrabold:800; font-family:var(--font); font-weight:var(--weight-regular); color:var(--ink); background:var(--paper); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; line-height:1.5; font-kerning:normal; text-rendering:optimizeLegibility; }
a { color:inherit; }
.site-header { position:relative; z-index:5; display:flex; justify-content:space-between; align-items:center; width:min(calc(100% - 64px),var(--max)); margin:auto; padding:28px 0; }
.header-caption { font-size:.62rem; font-weight:var(--weight-semibold); letter-spacing:.16em; line-height:1.45; text-transform:uppercase; }
.brand { display:inline-flex; align-items:center; font-size:1.5rem; font-weight:var(--weight-bold); text-decoration:none; letter-spacing:-.06em; }
.brand-logo { display:block; width:clamp(72px,6vw,96px); height:auto; }
nav { display:flex; gap:28px; font-size:.9rem; font-weight:var(--weight-medium); }
nav a { text-decoration:none; }
nav a:hover,.text-link:hover { color:var(--accent); }
.section { position:relative; width:min(calc(100% - 64px),var(--max)); margin:auto; padding:clamp(90px,12vw,180px) 0; }
.hero { min-height:78vh; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(390px,1.05fr); gap:3vw; align-items:stretch; width:100%; }
.media-placeholder { display:grid; place-items:center; color:rgba(29,29,27,.56); background:linear-gradient(135deg,#e9e7e2,#d4d0c8); text-align:center; text-transform:uppercase; letter-spacing:.12em; }
.media-placeholder span { font-size:.68rem; font-weight:var(--weight-semibold); line-height:1.55; }
.hero-visual { width:calc(100% + 4vw); min-height:100%; position:relative; }
.hero-visual::before { content:""; position:absolute; z-index:0; width:min(36vw,500px); aspect-ratio:1; border-radius:50%; background:var(--accent); left:50%; top:42%; transform:translate(-50%,-50%); }
.hero.is-visible .hero-visual::before { animation:hero-circle-in 1.8s cubic-bezier(.22,.8,.25,1) both; }
.eyebrow { margin:0 0 24px; color:var(--accent); font-size:.75rem; font-weight:var(--weight-semibold); letter-spacing:.14em; text-transform:uppercase; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:30px; margin-bottom:42px; }
.section-number { display:none; }
h1,h2,h3 { margin:0 0 28px; text-wrap:balance; }
h1 { max-width:1000px; font-size:clamp(3rem,8vw,7.2rem); font-weight:var(--weight-bold); letter-spacing:-.042em; line-height:.94; }
.hero h1 { font-size:clamp(2.8rem,6vw,5.6rem); }
h2 { font-size:clamp(2.5rem,5vw,5rem); font-weight:var(--weight-semibold); letter-spacing:-.035em; line-height:1.02; }
h3 { font-size:clamp(1.7rem,3vw,2.6rem); font-weight:var(--weight-semibold); letter-spacing:-.025em; line-height:1.05; }
em { color:var(--accent); font-style:normal; }
.lead { max-width:650px; font-size:clamp(1.2rem,2vw,1.55rem); line-height:1.42; }
.button { display:inline-flex; align-items:center; gap:18px; margin-top:24px; padding:14px 22px; text-decoration:none; font-size:.86rem; font-weight:var(--weight-semibold); transition:transform .2s ease,background .2s ease,color .2s ease; }
.button:hover { transform:translateY(-3px); }
.button-dark { color:var(--ink); background:var(--accent); }
.button-dark:hover { color:var(--paper); background:var(--ink); }
.button-accent { color:var(--ink); background:var(--accent); }
.button-accent:hover { color:var(--paper); background:var(--ink); }
.section-soft { width:100%; padding-left:max(32px,calc((100% - var(--max))/2)); padding-right:max(32px,calc((100% - var(--max))/2)); background:var(--soft); }
.section-soft.split { padding-top:clamp(110px,14vw,200px); }
.section-ink { width:100%; padding-left:max(32px,calc((100% - var(--max))/2)); padding-right:max(32px,calc((100% - var(--max))/2)); color:var(--paper); background:var(--ink); }
.split { display:grid; grid-template-columns:1fr 1fr; gap:10vw; }
.questions p { padding:20px 0; border-top:1px solid var(--line); }
.questions strong,.questions span { display:block; }
.questions span { margin-top:10px; color:#4d4d48; line-height:1.5; }
.question-copy { opacity:0; transform:translateY(22px); clip-path:inset(100% 0 0); }
.section-soft.is-visible .questions p:nth-child(1) .question-copy { animation:question-rise 1.05s .25s cubic-bezier(.22,.8,.25,1) both; }
.section-soft.is-visible .questions p:nth-child(2) .question-copy { animation:question-rise 1.05s .72s cubic-bezier(.22,.8,.25,1) both; }
.section-soft.is-visible .questions p:nth-child(3) .question-copy { animation:question-rise 1.05s 1.19s cubic-bezier(.22,.8,.25,1) both; }
.two-column-copy { display:grid; grid-template-columns:1fr 1fr; gap:10vw; }
.two-column-copy p { max-width:520px; font-size:1.15rem; line-height:1.52; }
.two-column-copy > div { grid-column:2; }
.two-column-copy > div p + p { margin-top:24px; }
.experience-line { display:flex; flex-wrap:wrap; justify-content:center; gap:12px 28px; margin-top:70px; padding-top:20px; border-top:1px solid var(--line); color:#4d4d48; font-size:.82rem; text-align:center; text-transform:uppercase; letter-spacing:.08em; }
.method-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:0; border-top:1px solid var(--line); }
.method-grid article { min-height:290px; padding:22px 24px 20px 0; border-bottom:1px solid var(--line); }
.method-grid article + article { padding-left:24px; border-left:1px solid var(--line); }
.method-grid span { display:block; margin-bottom:48px; color:var(--accent); font-size:.8rem; font-weight:var(--weight-semibold); }
.method-grid p { font-size:.95rem; color:#4d4d48; line-height:1.5; }
.method-copy { opacity:0; transform:translateY(24px); clip-path:inset(100% 0 0); }
.section.reveal.is-visible .method-grid article:nth-child(1) .method-copy { animation:method-rise 1.25s .20s cubic-bezier(.22,.8,.25,1) both; }
.section.reveal.is-visible .method-grid article:nth-child(2) .method-copy { animation:method-rise 1.25s .50s cubic-bezier(.22,.8,.25,1) both; }
.section.reveal.is-visible .method-grid article:nth-child(3) .method-copy { animation:method-rise 1.25s .80s cubic-bezier(.22,.8,.25,1) both; }
.section.reveal.is-visible .method-grid article:nth-child(4) .method-copy { animation:method-rise 1.25s 1.10s cubic-bezier(.22,.8,.25,1) both; }
.section.reveal.is-visible .method-grid article:nth-child(5) .method-copy { animation:method-rise 1.25s 1.40s cubic-bezier(.22,.8,.25,1) both; }
.project-preview-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.project-preview { min-height:340px; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; background:var(--paper); text-decoration:none; transition:transform .45s cubic-bezier(.22,.8,.25,1),box-shadow .45s ease; }
.js .projects-section .project-preview { opacity:var(--project-card-opacity,1); transform:translate3d(calc((1 - var(--project-card-progress,1)) * 18vw),0,0); transition:opacity .25s linear,transform .45s cubic-bezier(.22,.8,.25,1),box-shadow .45s ease; }
.js .projects-section .project-preview { --project-card-opacity:var(--project-card-progress,1); }
.project-preview:hover { transform:translateY(-8px); box-shadow:0 18px 34px rgba(29,29,27,.08); }
.project-preview-green { background:var(--accent); }
.project-preview span,.project-preview b { font-size:.75rem; font-weight:var(--weight-semibold); letter-spacing:.1em; text-transform:uppercase; }
.project-preview h2 { margin:18px 0 10px; font-size:clamp(1.45rem,2.5vw,2.6rem); letter-spacing:-.028em; line-height:1.04; }
.project-preview p { margin:0; font-size:.92rem; line-height:1.4; }
.project-preview b { margin-top:26px; }
.project-thumb { position:relative; min-height:0; aspect-ratio:16 / 9; margin:18px 0 6px; background:rgba(255,255,255,.46); overflow:hidden; transition:transform .45s cubic-bezier(.22,.8,.25,1); }
.project-thumb img { display:block; width:100%; height:100%; object-fit:cover; object-position:center; }
.project-preview:hover .project-thumb { transform:scale(1.025); }
.project-preview-image-only { padding:0; background:transparent; }
.project-preview-image-only .project-thumb { flex:1; width:100%; height:100%; aspect-ratio:auto; margin:0; }
.project-preview-image-only .project-thumb img { object-fit:cover; object-position:35% center; }
.project-preview-image-only .project-thumb::after { content:""; position:absolute; inset:0; background:rgba(0,0,0,.14); pointer-events:none; transition:opacity .5s ease; }
.project-preview-image-only:hover .project-thumb::after { opacity:0; }
.project-preview-image-only:nth-child(3) .project-thumb img { transform:scale(1.32); }
.project-preview:not(.project-preview-green) .project-thumb { background:#e6e3dc; }
.project-preview-placeholder { background:#e8e5de; }
.text-link { display:inline-flex; gap:14px; margin-top:36px; font-size:.86rem; font-weight:var(--weight-semibold); text-decoration:none; }
.quotes-carousel { display:grid; place-items:center; min-height:clamp(260px,32vh,390px); }
.quote-slide { grid-area:1 / 1; width:min(100%,920px); margin:0; text-align:center; opacity:0; transform:translateX(28px) scale(.985); pointer-events:none; transition:opacity .85s ease,transform .85s cubic-bezier(.22,.8,.25,1); }
.quote-slide.is-active { opacity:1; transform:translateX(0) scale(1); pointer-events:auto; }
.quote-slide p { margin:0 0 28px; font-size:clamp(1.25rem,2.2vw,1.8rem); line-height:1.35; letter-spacing:-.018em; }
.quote-slide cite { display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:6px 12px; color:#4d4d48; font-size:.8rem; font-style:normal; }
.quote-name { color:var(--ink); font-weight:var(--weight-semibold); }
.quote-name a { color:inherit; text-decoration:underline; text-decoration-color:rgba(29,29,27,.28); text-underline-offset:4px; transition:text-decoration-color .25s ease,color .25s ease; }
.quote-name a:hover { color:var(--accent-dark); text-decoration-color:currentColor; }
.quote-role { color:#4d4d48; }
.quote-stars { color:var(--accent); font-size:.82rem; letter-spacing:.12em; }
cite { color:#4d4d48; font-size:.8rem; font-style:normal; }
.contact-section { padding-bottom:clamp(110px,16vw,220px); }
main > .section:not(:first-child) { box-shadow:0 -12px 28px rgba(29,29,27,.055); }
main > .contact-section { box-shadow:none; }
.contact-page { max-width:900px; }
.contact-page h1 { max-width:820px; line-height:1.1; }
.contact-page h1 em { position:relative; top:.08em; }
.contact-details { display:grid; grid-template-columns:repeat(2,1fr); gap:28px; margin-top:64px; }
.contact-card { padding:26px 0; border-top:1px solid var(--line); }
.contact-card strong { display:block; margin-bottom:9px; font-size:1.1rem; }
.contact-card a { font-size:1.25rem; text-decoration:none; }
.contact-icon { display:none; }
.contact-icon svg { display:block; width:24px; height:24px; fill:none; stroke:currentColor; stroke-linecap:round; stroke-linejoin:round; stroke-width:1.8; }
.contact-card a:hover { color:var(--accent); }
.contact-note { max-width:620px; font-size:1.05rem; }
.site-footer { position:relative; z-index:10; display:flex; justify-content:space-between; align-items:flex-end; gap:36px; padding:38px max(32px,calc((100% - var(--max))/2)); border-top:1px solid var(--line); background:var(--paper); box-shadow:none !important; font-size:.82rem; line-height:1.5; }
.footer-identity,.footer-contact { display:flex; flex-direction:column; }
.footer-logo { display:block; width:70px; height:auto; margin-bottom:14px; }
.footer-identity:not(:has(.footer-logo))::before { content:""; display:block; width:70px; aspect-ratio:3.1; margin-bottom:14px; background:url("assets/egostudio.svg") left center / contain no-repeat; }
.site-footer > div:first-child:not(.footer-identity)::before { content:""; display:block; width:70px; aspect-ratio:3.1; margin-bottom:14px; background:url("assets/egostudio.svg") left center / contain no-repeat; }
.footer-identity strong { margin-bottom:3px; font-weight:var(--weight-semibold); }
.footer-identity span:first-of-type { display:none; }
.footer-identity span { color:#4d4d48; }
.footer-contact { align-items:flex-end; gap:2px; }
.footer-label { display:none; }
.footer-socials { display:flex; gap:8px; margin-top:16px; }
.social-mark { display:grid; place-items:center; width:27px; height:27px; border:1px solid var(--ink); border-radius:50%; color:var(--ink); font-size:.58rem; font-weight:var(--weight-semibold); line-height:1; text-decoration:none; text-transform:lowercase; transition:color .25s ease,background-color .25s ease,border-color .25s ease,transform .25s ease; }
.footer-socials .social-mark { font-size:0; background-position:center; background-repeat:no-repeat; background-size:14px 14px; }
.footer-socials .social-mark:nth-child(1) { background-image:url("https://cdn.simpleicons.org/whatsapp/1D1D1B"); }
.footer-socials .social-mark:nth-child(2) { background-image:url("https://cdn.simpleicons.org/linkedin/1D1D1B"); }
.footer-socials .social-mark:nth-child(3) { background-image:url("https://cdn.simpleicons.org/instagram/1D1D1B"); }
.footer-socials .social-mark:nth-child(2) { background-image:none; font-size:.58rem; }
.social-mark:hover { color:var(--paper); background-color:var(--ink); border-color:var(--ink); transform:translateY(-2px); }
.footer-socials .social-mark:nth-child(1):hover { background-image:url("https://cdn.simpleicons.org/whatsapp/FFFFFF"); }
.footer-socials .social-mark:nth-child(2):hover { background-image:none; color:var(--paper); }
.footer-socials .social-mark:nth-child(3):hover { background-image:url("https://cdn.simpleicons.org/instagram/FFFFFF"); }
.site-footer a { text-decoration:none; }
.site-footer a:hover { color:var(--accent); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity 1.15s ease,transform 1.15s cubic-bezier(.22,.8,.25,1); }
.reveal.is-visible { opacity:1; transform:none; }
@media (min-width:701px) {
  main > .section { position:sticky; top:0; min-height:calc(100vh - 96px); padding-top:clamp(72px,8vw,120px); padding-bottom:clamp(56px,7vw,96px); background:var(--paper); }
  main > .section:first-child { position:sticky; top:0; z-index:1; }
  main > .section:not(:first-child) { border-radius:28px 28px 0 0; }
  main > .section:not(:first-child).is-stacked { border-radius:0; }
  main > .section.section-soft { background:var(--soft); }
  main > .section.section-ink { background:var(--ink); }
  main > .section:nth-child(2) { margin-top:-130px; }
  main > .section:nth-child(3) { width:100%; padding-left:max(32px,calc((100% - var(--max))/2)); padding-right:max(32px,calc((100% - var(--max))/2)); }
  main > .section:nth-child(5) { width:100%; padding-left:max(32px,calc((100% - var(--max))/2)); padding-right:max(32px,calc((100% - var(--max))/2)); }
  main > .section:nth-child(7) { width:100%; padding-left:max(32px,calc((100% - var(--max))/2)); padding-right:max(32px,calc((100% - var(--max))/2)); }
  main > .section:nth-child(7) { min-height:72vh; }
  main > .section:nth-child(8) { width:100%; padding-left:max(32px,calc((100% - var(--max))/2)); padding-right:max(32px,calc((100% - var(--max))/2)); }
  main > .projects-section { min-height:130vh; }
  main > .projects-section .project-preview-grid { position:sticky; top:clamp(88px,10vh,120px); }
  main > .section:nth-child(1) { z-index:1; }
  main > .section:nth-child(2) { z-index:2; }
  main > .section:nth-child(3) { z-index:3; }
  main > .section:nth-child(4) { z-index:4; }
  main > .section:nth-child(5) { z-index:5; }
  main > .section:nth-child(6) { z-index:6; }
  main > .section:nth-child(7) { z-index:7; }
  main > .section:nth-child(8) { z-index:8; }
  main > .section.reveal { opacity:1; transform:none; }
}
@media (max-width:900px) { .method-grid { grid-template-columns:repeat(2,1fr); } .method-grid article:nth-child(3) { border-left:0; padding-left:0; } }
@media (max-width:700px) { .site-header,.section { width:calc(100% - 40px); } .header-caption { display:none; } .site-header { padding:22px 0; } .section-soft,.section-ink { width:100%; padding-left:20px; padding-right:20px; } nav { gap:16px; } .hero { min-height:72vh; } .hero-grid { display:flex; flex-direction:column; align-items:stretch; gap:46px; } .hero-visual { width:100%; min-height:300px; } .section-heading,.split,.two-column-copy,.quotes-grid { display:block; } .section-number { display:block; margin-top:12px; } .questions { margin-top:48px; } .method-grid { grid-template-columns:1fr; } .method-grid article,.method-grid article + article { min-height:auto; padding:24px 0; border-left:0; } .method-grid span { margin-bottom:18px; } .project-preview-grid { grid-template-columns:1fr; } .project-preview { min-height:350px; padding:24px; } .project-thumb { aspect-ratio:16 / 10; } .site-footer { display:block; padding:38px 20px; } .site-footer > div + div { margin-top:30px; } .footer-contact { align-items:flex-start; } }
@media (max-width:700px) { .projects-section { min-height:0 !important; } .projects-section .project-preview-grid { position:relative; top:auto; } .js .projects-section .project-preview { opacity:1; transform:none; transition:none; } }
@media (max-width:700px) { .projects-section .project-preview-grid { grid-template-columns:1fr; gap:1px; width:calc(100% + 40px); margin-left:-20px; margin-right:-20px; background:var(--paper); } .projects-section .project-preview { min-height:0; padding:0; aspect-ratio:16 / 10; overflow:hidden; } .projects-section .project-preview-image-only .project-thumb { aspect-ratio:auto; min-height:0; } }
@media (max-width:700px) { .section.hero { min-height:0; padding:90px 0 0 !important; } .section-soft.split { padding-top:64px; margin-top:-8px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; } .reveal,.project-preview,.method-copy,.question-copy { opacity:1; transform:none; clip-path:none; } }
@media (max-width:700px) { .contact-card a { display:grid; place-items:center; width:68px; height:68px; border:1px solid var(--ink); border-radius:50%; font-size:0; } .contact-card a .contact-value { display:none; } .contact-card a .contact-icon { display:inline-flex; } .contact-card a .contact-icon svg { width:32px; height:32px; stroke-width:2; } .contact-card:nth-child(3) a .contact-icon { width:32px; height:32px; background:url("https://cdn.simpleicons.org/whatsapp/1D1D1B") center / contain no-repeat; } .contact-card:nth-child(3) a .contact-icon svg { display:none; } .contact-card a:hover { color:var(--paper); background:var(--ink); border-color:var(--ink); } }
@media (max-width:700px) { .section-number { display:none !important; } }
@media (max-width:700px) { main > .section { width:100%; margin-left:0; margin-right:0; border-radius:0; box-shadow:none; } main > .section.section-soft,main > .section.section-ink { width:100%; padding-left:20px; padding-right:20px; } .section-soft.split { margin-top:0; } }
@media (max-width:700px) { main > .section:not(.section-soft):not(.section-ink) { padding-left:20px; padding-right:20px; } main > .section.hero { padding-left:20px !important; padding-right:20px !important; } }
.hero-image { position:relative; z-index:1; align-self:start; width:100%; min-height:0; height:clamp(500px,60vw,780px); object-fit:contain; object-position:center bottom; }
.hero.is-visible .hero-image { animation:hero-image-in 1.55s .34s cubic-bezier(.22,.8,.25,1) both; }
@media (max-width:700px) { .hero-image { width:100%; height:380px; } }
@media (max-width:700px) { .hero-visual::before { width:min(68vw,320px); top:44%; } }
@media (max-width:700px) { .case-study-hero-media img { transform:scale(var(--hero-scroll-zoom,1)); transform-origin:center center; will-change:transform; } }

.cookie-consent-backdrop { position:fixed; z-index:100; inset:0; background:rgba(29,29,27,.18); animation:cookie-fade-in .3s ease both; }
.cookie-consent-backdrop.is-closing { animation:cookie-fade-out .22s ease both; }
.cookie-consent-panel { position:fixed; z-index:101; left:24px; bottom:24px; width:min(560px,calc(100% - 48px)); padding:28px; color:var(--ink); background:var(--paper); border:1px solid rgba(29,29,27,.14); box-shadow:0 20px 60px rgba(29,29,27,.16); animation:cookie-panel-in .38s cubic-bezier(.22,.8,.25,1) both; }
.cookie-consent-panel.is-closing { animation:cookie-panel-out .22s ease both; }
.cookie-close { position:absolute; top:12px; right:14px; width:30px; height:30px; padding:0; color:var(--ink); background:transparent; border:0; font:400 1.65rem/1 Arial,sans-serif; cursor:pointer; opacity:.7; }
.cookie-close:hover { opacity:1; }
.cookie-consent-mark { display:grid; place-items:center; width:34px; height:34px; margin-bottom:16px; color:var(--paper); background:var(--ink); border-radius:50%; }
.cookie-consent-mark img,.cookie-floating-button img { display:block; width:20px; height:20px; object-fit:contain; filter:invert(1); }
.cookie-consent-content h2 { margin:0 0 12px; font-size:1.35rem; line-height:1.1; letter-spacing:-.025em; }
.cookie-consent-content p { margin:0; font-size:.84rem; line-height:1.5; }
.cookie-consent-content a { color:inherit; font-weight:var(--weight-semibold); }
.cookie-consent-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:22px; }
.cookie-consent-actions button { min-height:42px; padding:10px 14px; border:1px solid var(--ink); font:inherit; font-size:.76rem; font-weight:var(--weight-semibold); cursor:pointer; }
.cookie-primary { color:var(--paper); background:var(--ink); }
.cookie-secondary { color:var(--ink); background:var(--paper); }
.cookie-consent-preferences { max-height:48vh; margin-top:20px; overflow:auto; }
.cookie-consent-preferences > p { margin-bottom:8px; }
.cookie-less-button { margin:0 0 10px; padding:0; color:var(--ink); background:none; border:0; font:inherit; font-size:.76rem; text-decoration:underline; cursor:pointer; }
.cookie-category { display:flex; justify-content:space-between; gap:18px; padding:14px 0; border-top:1px solid var(--line); }
.cookie-category div { display:grid; gap:4px; }
.cookie-category strong { font-size:.87rem; }
.cookie-category span,.cookie-category b { color:#4d4d48; font-size:.74rem; font-weight:var(--weight-regular); line-height:1.4; }
.cookie-category b { min-width:84px; text-align:right; }
.cookie-category input { flex:0 0 auto; width:19px; height:19px; margin:2px 2px 0 0; accent-color:var(--accent); }
.cookie-floating-button { position:fixed; z-index:99; left:18px; bottom:18px; display:grid; place-items:center; width:44px; height:44px; padding:0; color:var(--paper); background:var(--ink); border:0; border-radius:50%; box-shadow:0 8px 22px rgba(29,29,27,.18); cursor:pointer; }
.cookie-floating-button[hidden] { display:none; }
@media (max-width:700px) { .cookie-consent-panel { left:12px; bottom:12px; width:calc(100% - 24px); padding:22px 20px 20px; } .cookie-consent-mark { margin-bottom:12px; } .cookie-consent-actions { display:grid; grid-template-columns:1fr 1fr; } .cookie-consent-actions .cookie-primary { grid-column:1 / -1; grid-row:1; } .cookie-consent-actions .cookie-secondary:first-child { grid-column:1; grid-row:2; } .cookie-consent-actions .cookie-secondary:nth-child(2) { grid-column:2; grid-row:2; } }
@keyframes cookie-fade-in { from { opacity:0; } to { opacity:1; } }
@keyframes cookie-fade-out { from { opacity:1; } to { opacity:0; } }
@keyframes cookie-panel-in { from { opacity:0; transform:translateY(22px) scale(.98); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes cookie-panel-out { from { opacity:1; transform:translateY(0) scale(1); } to { opacity:0; transform:translateY(12px) scale(.985); } }
@media (prefers-reduced-motion:reduce) { .cookie-consent-backdrop,.cookie-consent-panel { animation:none; } }
@keyframes hero-circle-in { from { opacity:0; transform:translate(calc(50vw + 50%),-50%); } to { opacity:1; transform:translate(-50%,-50%); } }
@keyframes hero-image-in { from { transform:translateY(120px) scale(.96); } to { transform:translateY(0) scale(1); } }
@keyframes question-rise { from { opacity:0; transform:translateY(22px); clip-path:inset(100% 0 0); } to { opacity:1; transform:translateY(0); clip-path:inset(0); } }
@keyframes method-rise { from { opacity:0; transform:translateY(24px); clip-path:inset(100% 0 0); } to { opacity:1; transform:translateY(0); clip-path:inset(0); } }
@keyframes project-card-in { 0% { opacity:0; transform:translateY(72px) scale(.965); } 72% { opacity:1; transform:translateY(-5px) scale(1.006); } 100% { opacity:1; transform:translateY(0) scale(1); } }
