/* Studio identity, one complete logo sequence, and a focused contact flow. */
/* Native scrolling; progressive enhancement leaves content visible without JS. */
@media(prefers-reduced-motion:no-preference){
  .scroll-reveal{opacity:0;transform:translate3d(0,38px,0);transition:opacity .85s ease,transform 1.05s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
  .app-feature.scroll-reveal{transform:translate3d(0,52px,0) scale(.965);transform-origin:center top;transition-duration:1s,1.2s}
  .contact-panel.scroll-reveal{transform:translate3d(0,45px,0) scale(.975)}
  .scroll-reveal.scroll-shown,.scroll-reveal:focus-within{opacity:1;transform:translate3d(0,0,0) scale(1)}
  .brand-scene{transform:translate3d(0,var(--scroll-lift,0px),0) rotate(var(--scroll-turn,0deg))}
  .app-visual .project-logo{transform:translate3d(0,var(--art-lift,0px),0) scale(var(--art-scale,1))}
  .app-visual .project-wordmark{transform:translate3d(0,calc(var(--art-lift,0px) * .45),0)}
}
@media(max-width:760px) and (prefers-reduced-motion:no-preference){
  .scroll-reveal{transform:translate3d(0,24px,0);transition-duration:.65s,.8s;transition-delay:0ms!important}
  .app-feature.scroll-reveal,.contact-panel.scroll-reveal{transform:translate3d(0,30px,0) scale(.985)}
  .scroll-reveal.scroll-shown,.scroll-reveal:focus-within{opacity:1;transform:none}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}.scroll-reveal{opacity:1!important;transform:none!important;transition:none!important}}
@media print{.scroll-reveal{opacity:1!important;transform:none!important}.brand-scene,.project-logo,.project-wordmark{transform:none!important}}
.hero{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:0 58px;padding-top:60px}
.hero-copy{padding-top:20px}.hero h1{font-size:clamp(45px,5.4vw,79px);font-weight:550;letter-spacing:-.065em;max-width:650px}.headline-accent{color:#c3b5f9}.hero-copy>p:not(.eyebrow){max-width:440px;font-size:17px}
.hero-index{margin-bottom:38px}.hero-baseline{margin-top:45px;border-top:1px solid #ffffff12}.hero-baseline span{max-width:none}
.brand-scene{position:relative;align-self:center;aspect-ratio:1.22;min-width:0;isolation:isolate;display:flex;align-items:center;justify-content:center}
.brand-play{position:absolute;inset:0;width:100%;height:100%;border:0;background:none;color:inherit;cursor:pointer;padding:0;border-radius:50%;-webkit-tap-highlight-color:transparent}
.brand-play:focus-visible{outline:2px solid #bfa8f5;outline-offset:5px}

.brand-aura{position:absolute;inset:18% 12%;border-radius:50%;background:radial-gradient(ellipse,#9b8af026,transparent 68%);opacity:0;pointer-events:none;filter:blur(14px)}
.brand-reveal{position:absolute;left:5%;right:5%;top:37%;height:28%;display:flex;align-items:center;justify-content:center;pointer-events:none}
.reveal-v{position:absolute;left:50%;top:50%;width:42.3%;height:auto;aspect-ratio:680/600;overflow:visible;transform:translate(-50%,-50%);shape-rendering:geometricPrecision}
.reveal-name{position:absolute;left:17%;right:0;text-align:left;font-family:inherit;font-size:clamp(29px,4.4vw,64px);font-weight:550;letter-spacing:-.065em;line-height:1;color:#f3f2ff;white-space:nowrap}
.reveal-name>span{display:inline-block;opacity:0;transform:translateY(16px);filter:blur(4px)}
.reveal-studio{position:absolute;top:112%;left:19%;font-size:11px;letter-spacing:.55em;color:#bfb2df;opacity:0}
.brand-scene{--brand-font:clamp(29px,4.4vw,64px)}
.brand-reveal{transform:translate(var(--pointer-x,0px),var(--pointer-y,0px));transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.brand-aura{inset:10% 0;background:radial-gradient(ellipse at 45% 50%,#8987ff29,transparent 64%);filter:none}
.brand-orbit{position:absolute;inset:11% 8%;border:1px solid #b2baff35;border-radius:50%;opacity:0;pointer-events:none;transform:rotate(-28deg) scale(.7,.42)}
.reveal-v{filter:none}
.reveal-name{left:39%;font-size:var(--brand-font);font-weight:500;letter-spacing:-.06em;color:#eeeaff}
.reveal-name>span{transform:none;filter:none}
.reveal-studio{left:39%;top:calc(50% + var(--brand-font) * .5 + 12px);font-size:10px;line-height:1;letter-spacing:.38em;color:#c4b8df}
.v-shimmer{opacity:0;transform:translateX(-400px) skewX(-18deg)}
.playing .brand-aura{animation:brand-bloom 7.2s ease both}
.playing .brand-orbit{animation:orbit-unfold 7.2s cubic-bezier(.22,.7,.2,1) both}
.playing .reveal-v{animation:v-unfold 7.2s cubic-bezier(.22,.8,.2,1) both}
.playing .v-left{animation:v-left-unfold 7.2s ease both;transform-origin:446px 802px}
.playing .v-right{animation:v-right-unfold 7.2s ease both;transform-origin:446px 802px}
.playing .v-fold{animation:fold-unfold 7.2s ease both}
.playing .v-shimmer{animation:shimmer-unfold 7.2s cubic-bezier(.3,.4,.2,1) both}
.playing .reveal-name>span{animation:letter-unfold 7.2s cubic-bezier(.2,.8,.2,1) both}
.playing .reveal-name>span:nth-child(2){animation-delay:35ms}.playing .reveal-name>span:nth-child(3){animation-delay:70ms}.playing .reveal-name>span:nth-child(4){animation-delay:105ms}.playing .reveal-name>span:nth-child(5){animation-delay:140ms}.playing .reveal-name>span:nth-child(6){animation-delay:175ms}.playing .reveal-name>span:nth-child(7){animation-delay:210ms}
.playing .reveal-studio{animation:signature-unfold 7.2s ease both}
@keyframes v-unfold{0%,100%{left:50%;top:50%;width:42.3%;transform:translate(-50%,-50%)}12%{left:50%;top:46%;width:43.5%;transform:translate(-50%,-50%) rotate(-3deg)}34%,69%{left:30.6%;top:50%;width:18%;transform:translate(-50%,-50%)}94%{left:50%;top:50%;width:42.3%;transform:translate(-50%,-50%)}}
@keyframes v-left-unfold{0%,32%,75%,100%{transform:rotate(0)}13%{transform:rotate(-5deg)}}
@keyframes v-right-unfold{0%,32%,75%,100%{transform:rotate(0)}13%{transform:rotate(5deg)}}
@keyframes fold-unfold{0%,32%,100%{opacity:.25}12%,20%{opacity:0}}
@keyframes letter-unfold{0%,22%{opacity:0;transform:translateX(12px)}39%,66%{opacity:1;transform:none}79%,100%{opacity:0;transform:translateX(-7px)}}
@keyframes signature-unfold{0%,34%,82%,100%{opacity:0;transform:translateY(9px)}46%,65%{opacity:1;transform:translateY(0)}}
@keyframes brand-bloom{0%,100%{opacity:0;transform:scale(.8)}18%,68%{opacity:1;transform:scale(1.12)}85%{opacity:.4;transform:scale(.95)}}
@keyframes orbit-unfold{0%,100%{opacity:0;transform:rotate(-28deg) scale(.65,.38)}19%{opacity:.7;transform:rotate(-14deg) scale(1,.48)}48%{opacity:.25;transform:rotate(6deg) scale(1.12,.55)}73%{opacity:0;transform:rotate(18deg) scale(1.18,.6)}}
@keyframes shimmer-unfold{0%{opacity:0;transform:translateX(-400px) skewX(-18deg)}8%{opacity:.8}24%{opacity:.7;transform:translateX(1450px) skewX(-18deg)}25%,100%{opacity:0;transform:translateX(1450px) skewX(-18deg)}}
.studio-approach{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;padding:0 0 80px}.approach-item{border-top:1px solid #ffffff28;padding-top:24px}.approach-item>span{font:11px Consolas,monospace;color:#b6a3ed}.approach-item h3{font-size:22px;font-weight:500;letter-spacing:-.025em;margin:18px 0 10px}.approach-item p{font-size:14px;line-height:1.8;color:#a8b7d0;margin:0}.app-feature{box-shadow:0 25px 60px #03081225}.app-visual{background:radial-gradient(ellipse at 30% 10%,#e6def5,#b5a0d1 75%)}.app-visual:after{box-shadow:0 0 0 34px #ffffff12,0 0 0 68px #ffffff07}.news-section .empty-news{max-width:700px}
.contact-panel{background:#c3b1ef}.contact-actions{display:flex;flex-wrap:wrap;gap:20px;align-items:center;margin-top:26px}.contact-actions .button{background:#202440;color:#fff;border:1px solid #202440}.contact-actions>span{font-size:12px;color:#453959}.contact-form-shell{margin-top:28px;border-top:1px solid #50426155;padding-top:28px;color:#202440}.contact-form-shell[hidden],.contact-form[hidden],.contact-open[hidden]{display:none}.contact-form{display:grid;gap:18px;max-width:850px}.form-heading{display:flex;align-items:center;justify-content:space-between;gap:15px}.form-heading h3{font-size:26px;letter-spacing:-.03em;margin:0}.form-heading button{color:#202440}.contact-form>p{font-size:13px;line-height:1.7;max-width:720px;margin:0;color:#403651}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.contact-form label{font-size:13px;font-weight:600;display:grid;gap:7px}.contact-form input,.contact-form select,.contact-form textarea{width:100%;min-width:0;font-size:16px;line-height:1.5;font-family:inherit;color:#1b203b;border:1px solid #81729f;background:#f9f6ff;border-radius:8px;padding:12px;min-height:48px;resize:vertical;color-scheme:light}.contact-form textarea{font-size:16px}.contact-form input:focus,.contact-form select:focus,.contact-form textarea:focus{outline:3px solid #354c92;outline-offset:2px}.contact-form .contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-form .contact-submit{justify-self:start;background:#202440;color:white;border-color:#202440}.contact-form .form-privacy{font-size:12px}.form-privacy a{text-decoration:underline;color:inherit}.contact-result{font-size:14px;line-height:1.7;color:#27203e;white-space:pre-line}.document .contact-link{color:#d1c2fa}.document .contact-actions>span{color:#c6c7db}.document .contact-form-shell{background:#c3b1ef;border-radius:18px;padding:28px}.document .contact-form p{color:#403651}.document .contact-result{color:#27203e}
@media(max-width:1100px){.hero{gap:0 25px}.brand-scene{--brand-font:4.4vw}.scene-top{font-size:8px}.reveal-studio{font-size:10px}}
@media(max-width:760px){.hero{grid-template-columns:1fr;padding-top:35px}.hero-copy{padding-top:0;max-width:600px}.hero h1{font-size:clamp(42px,9vw,68px)}.brand-scene{margin-top:10px;width:100%;max-width:610px;aspect-ratio:1.4;justify-self:center}.brand-scene{--brand-font:clamp(34px,8.8vw,62px)}.hero-baseline{margin-top:25px}.studio-approach{grid-template-columns:1fr;gap:28px;padding-bottom:55px}.approach-item{display:grid;grid-template-columns:35px 1fr;gap:10px}.approach-item h3{margin:0;font-size:21px}.approach-item p{grid-column:2}.form-grid{grid-template-columns:1fr}.contact-actions{align-items:flex-start;flex-direction:column;gap:12px}.contact-form-shell{margin-top:22px}.scene-top{font-size:8px}.scene-bottom{font-size:10px}.document .contact-form-shell{padding:20px}}
@media(max-width:380px){.scene-top{font-size:7px}.brand-scene{--brand-font:8.7vw}.reveal-studio{font-size:9px}.hero h1{font-size:40px}.contact-panel{padding:28px 20px}}
@media(prefers-reduced-motion:reduce){.brand-scene *{animation:none!important;transition:none!important}.playing .reveal-v{left:30.6%;top:50%;width:18%;transform:translate(-50%,-50%)}.playing .reveal-name>span,.playing .reveal-studio{opacity:1;transform:none;filter:none}}

/* Privacy: editorial layout with direct access to the real consent controls. */
.privacy-section{display:grid;grid-template-columns:1fr 1fr;gap:72px;padding:64px 0 76px;border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24}
.privacy-intro h2{max-width:650px;line-height:1.08;letter-spacing:-.045em;margin-bottom:24px}.privacy-intro>p:not(.eyebrow){max-width:520px;color:#b5c2d8;font-size:16px;line-height:1.85}.privacy-intro>.inline-link{display:inline-block;margin-top:20px}
.privacy-choices{padding-top:10px}.privacy-choices article{display:flex;gap:22px;padding:24px 0}.privacy-choices article+article{border-top:1px solid #ffffff20}.privacy-marker{flex-shrink:0;color:#c0b1ef;font:12px Consolas,monospace;padding-top:6px}.privacy-choices h3{font-size:23px;font-weight:500;letter-spacing:-.025em;margin:0 0 12px}.privacy-choices p{color:#acbbd3;font-size:14px;line-height:1.8;margin:0 0 18px}.privacy-open{border:0;background:transparent;padding:5px 0;font:inherit;cursor:pointer;color:#d3c6fa}.privacy-open:focus-visible{outline:2px solid #bfa8f5;outline-offset:6px}
@media(max-width:760px){.privacy-section{grid-template-columns:1fr;gap:22px;padding:45px 0}.privacy-intro h2{font-size:39px}.privacy-choices{padding-top:0}.privacy-choices article{gap:18px}.privacy-intro>p:not(.eyebrow){font-size:15px}}

/* A coordinated entrance: frame first, then heading and supporting copy. */
@media(prefers-reduced-motion:no-preference){
  .scroll-reveal{transform:translate3d(0,30px,0);transition:opacity .7s cubic-bezier(.2,.65,.3,1),transform 1.15s cubic-bezier(.16,1,.3,1);transition-delay:var(--reveal-delay,0ms)}
  .app-feature.scroll-reveal{transform:perspective(1400px) translate3d(0,65px,0) rotateX(3deg) scale(.955);transform-origin:50% 0;transition-duration:.8s,1.4s}
  .contact-panel.scroll-reveal{transform:translate3d(0,48px,0) scale(.97);transition-duration:.75s,1.25s}
  .scroll-reveal.scroll-shown,.scroll-reveal:focus-within{opacity:1;transform:none}
  .section-head.scroll-shown h2,.privacy-intro.scroll-shown h2,.studio-layout>div.scroll-shown h2{animation:heading-arrive 1.1s cubic-bezier(.16,1,.3,1) both}
  .app-feature.scroll-reveal .app-copy>*{opacity:0;transform:translate3d(0,18px,0);transition:opacity .65s ease,transform .95s cubic-bezier(.16,1,.3,1);transition-delay:.12s}
  .app-feature.scroll-shown .app-copy>*,.app-feature:focus-within .app-copy>*{opacity:1;transform:none}
  .app-feature.scroll-shown .app-copy>:nth-child(2){transition-delay:.2s}.app-feature.scroll-shown .app-copy>:nth-child(3){transition-delay:.28s}.app-feature.scroll-shown .app-copy>:nth-child(n+4){transition-delay:.34s}
  .app-visual:before{content:"";display:block;position:absolute;inset:-45%;width:auto;height:auto;border:0;border-radius:0;z-index:0;pointer-events:none;background:linear-gradient(115deg,transparent 35%,#fff3 49%,transparent 64%);transform:translate3d(var(--art-light,0%),0,0)}
  .app-visual:after{transform:translate(-50%,-50%) scale(var(--ring-scale,1))}
  @keyframes heading-arrive{from{clip-path:inset(0 0 90% 0);transform:translateY(20px);opacity:.25}to{clip-path:inset(-10% -5% -10% -5%);transform:none;opacity:1}}
}
@media(max-width:760px) and (prefers-reduced-motion:no-preference){
  .scroll-reveal{transform:translate3d(0,20px,0);transition-duration:.6s,.9s}
  .app-feature.scroll-reveal,.contact-panel.scroll-reveal{transform:translate3d(0,32px,0) scale(.98)}
  .scroll-reveal.scroll-shown,.scroll-reveal:focus-within{transform:none}
  .app-feature.scroll-reveal .app-copy>*{transition-delay:.08s;transition-duration:.5s,.75s}
  .brand-orbit{border-color:#b2baff25}
}
@media(prefers-reduced-motion:reduce){.brand-reveal{transform:none!important}.brand-orbit,.v-shimmer{display:none}.playing .v-fold{opacity:.25}}

/* A measured wordmark keeps the V and lettering aligned at every screen size. */
.reveal-name{right:auto;width:max-content;left:var(--name-open-x,39%);font-weight:550;letter-spacing:-.055em}
.reveal-studio{left:var(--name-open-x,39%);top:calc(50% + var(--brand-font) * .5 + 9px);letter-spacing:.34em;font-size:clamp(8px,1vw,10px)}
.playing .reveal-v,.playing .v-left,.playing .v-right,.playing .v-fold,.playing .v-shimmer,.playing .reveal-name>span,.playing .reveal-studio,.playing .brand-aura,.playing .brand-orbit{animation-duration:6.4s}
.playing .reveal-name>span:nth-child(2){animation-delay:25ms}.playing .reveal-name>span:nth-child(3){animation-delay:50ms}.playing .reveal-name>span:nth-child(4){animation-delay:75ms}.playing .reveal-name>span:nth-child(5){animation-delay:100ms}.playing .reveal-name>span:nth-child(6){animation-delay:125ms}.playing .reveal-name>span:nth-child(7){animation-delay:150ms}
@keyframes v-unfold{0%,100%{left:50%;top:50%;width:42.3%;transform:translate(-50%,-50%)}9%{left:50%;top:48%;width:43%;transform:translate(-50%,-50%) rotate(-1.5deg)}29%,70%{left:var(--v-open-x,30.6%);top:50%;width:var(--v-open-width,18%);transform:translate(-50%,-50%)}96%{left:50%;top:50%;width:42.3%;transform:translate(-50%,-50%)}}
@keyframes v-left-unfold{0%,27%,72%,100%{transform:rotate(0)}10%{transform:rotate(-2.5deg)}}
@keyframes v-right-unfold{0%,27%,72%,100%{transform:rotate(0)}10%{transform:rotate(2.5deg)}}
@keyframes letter-unfold{0%,19%{opacity:0;transform:translate(8px,5px)}34%,67%{opacity:1;transform:none}78%,100%{opacity:0;transform:translate(-5px,-2px)}}
@keyframes signature-unfold{0%,31%,81%,100%{opacity:0;transform:translateY(6px);letter-spacing:.48em}43%,66%{opacity:1;transform:none;letter-spacing:.34em}}
@keyframes brand-bloom{0%,100%{opacity:0;transform:scale(.85)}22%,65%{opacity:.8;transform:scale(1.05)}83%{opacity:.2;transform:scale(.95)}}
@keyframes orbit-unfold{0%,100%{opacity:0;transform:rotate(-24deg) scale(.7,.4)}20%{opacity:.35;transform:rotate(-12deg) scale(.94,.45)}48%{opacity:.16;transform:rotate(4deg) scale(1.08,.52)}70%{opacity:0;transform:rotate(14deg) scale(1.13,.56)}}
@keyframes shimmer-unfold{0%,29%{opacity:0;transform:translateX(-400px) skewX(-18deg)}34%{opacity:.5}52%{opacity:.5;transform:translateX(1450px) skewX(-18deg)}53%,100%{opacity:0;transform:translateX(1450px) skewX(-18deg)}}
@media(prefers-reduced-motion:reduce){.playing .reveal-v{left:var(--v-open-x,30.6%);width:var(--v-open-width,18%)}.playing .reveal-studio{letter-spacing:.34em}}

/* Two quiet light trails orbit only during the interactive logo reveal. */
.brand-halo{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;opacity:0}
.halo-plane{transform-origin:300px 214px;transform:rotate(-18deg)}.halo-plane-back{transform:rotate(22deg)}
.brand-halo ellipse{fill:none;stroke-linecap:round;vector-effect:non-scaling-stroke}
.halo-track{stroke:#a7bcf2;stroke-width:.7;opacity:.11}
.halo-trail{stroke:url(#halo-light);stroke-width:1.5;stroke-dasharray:23 77}
.halo-glow{stroke:#8f9df4;stroke-width:7;stroke-dasharray:23 77;opacity:.09}
.halo-head{stroke:#d4e5ff;stroke-width:3;stroke-dasharray:.35 99.65;stroke-dashoffset:-22.5}
.halo-backward{stroke-width:1;stroke-dasharray:15 85;opacity:.45}
.playing .brand-halo{animation:halo-appear 6.4s cubic-bezier(.22,.7,.3,1) both}
.playing .halo-forward{animation:halo-circuit 6.4s cubic-bezier(.3,.55,.35,1) both}
.playing .halo-head{animation:halo-lead 6.4s cubic-bezier(.3,.55,.35,1) both}
.playing .halo-backward{animation:halo-counter 6.4s cubic-bezier(.3,.55,.35,1) both}
.playing .halo-plane{animation:halo-plane-turn 6.4s ease both}.playing .halo-plane-back{animation:halo-back-turn 6.4s ease both}
@keyframes halo-appear{0%,100%{opacity:0;transform:scale(.82)}12%{opacity:.85;transform:scale(.94)}35%,58%{opacity:.72;transform:scale(1)}76%{opacity:.35;transform:scale(1.05)}91%{opacity:0;transform:scale(1.1)}}
@keyframes halo-circuit{from{stroke-dashoffset:28}to{stroke-dashoffset:-142}}
@keyframes halo-lead{from{stroke-dashoffset:5.5}to{stroke-dashoffset:-164.5}}
@keyframes halo-counter{from{stroke-dashoffset:-38}to{stroke-dashoffset:112}}
@keyframes halo-plane-turn{from{transform:rotate(-26deg)}to{transform:rotate(-8deg)}}
@keyframes halo-back-turn{from{transform:rotate(27deg)}to{transform:rotate(12deg)}}
@media(max-width:760px){.halo-trail{stroke-width:1.2}.halo-head{stroke-width:2.5}.halo-glow{stroke-width:5}}
@media(prefers-reduced-motion:reduce){.brand-halo{display:none}}

/* Studio motion signature: unfold, hold with orbit, then fold back. */
.brand-scene{--logo-duration:9.6s}.brand-reveal{contain:layout style}
.playing .reveal-v,.playing .v-left,.playing .v-right,.playing .v-fold,.playing .v-shimmer,.playing .brand-aura{animation-duration:var(--logo-duration);animation-timing-function:cubic-bezier(.4,0,.2,1)}
.reveal-name>span{--letter:0}.reveal-name>span:nth-child(2){--letter:1}.reveal-name>span:nth-child(3){--letter:2}.reveal-name>span:nth-child(4){--letter:3}.reveal-name>span:nth-child(5){--letter:4}.reveal-name>span:nth-child(6){--letter:5}.reveal-name>span:nth-child(7){--letter:6}
.playing .reveal-name>span:nth-child(n){animation:logo-letter-in .85s cubic-bezier(.22,.7,.2,1) calc(1.5s + var(--letter)*.05s) both,logo-letter-out .75s cubic-bezier(.4,0,.6,1) calc(7.3s + (6 - var(--letter))*.045s) forwards}
.playing .reveal-studio{animation:logo-studio-in 1s cubic-bezier(.22,.7,.2,1) 2.35s both,logo-studio-out .65s ease 7.1s forwards}
.playing .brand-halo{animation:halo-appear var(--logo-duration) cubic-bezier(.4,0,.2,1) both}
.playing .halo-forward{animation:halo-circuit var(--logo-duration) linear both}.playing .halo-head{animation:halo-lead var(--logo-duration) linear both}.playing .halo-backward{animation:halo-counter var(--logo-duration) linear both}
.playing .halo-plane{animation:halo-plane-turn var(--logo-duration) linear both}.playing .halo-plane-back{animation:halo-back-turn var(--logo-duration) linear both}
@keyframes v-unfold{0%,100%{left:50%;top:50%;width:42.3%;transform:translate(-50%,-50%)}7%{left:50%;top:49%;width:43%;transform:translate(-50%,-50%) rotate(-1deg)}25%,77%{left:var(--v-open-x,30.6%);top:50%;width:var(--v-open-width,18%);transform:translate(-50%,-50%)}}
@keyframes v-left-unfold{0%,24%,77%,100%{transform:rotate(0)}7%{transform:rotate(-2deg)}}
@keyframes v-right-unfold{0%,24%,77%,100%{transform:rotate(0)}7%{transform:rotate(2deg)}}
@keyframes fold-unfold{0%,24%,100%{opacity:.25}7%,14%{opacity:0}}
@keyframes logo-letter-in{from{opacity:0;transform:translate(8px,3px)}to{opacity:1;transform:none}}
@keyframes logo-letter-out{from{opacity:1;transform:none}to{opacity:0;transform:translate(8px,3px)}}
@keyframes logo-studio-in{from{opacity:0;transform:translateY(5px);letter-spacing:.43em}to{opacity:1;transform:none;letter-spacing:.34em}}
@keyframes logo-studio-out{from{opacity:1;transform:none;letter-spacing:.34em}to{opacity:0;transform:translateY(5px);letter-spacing:.43em}}
@keyframes brand-bloom{0%,100%{opacity:0;transform:scale(.9)}22%,80%{opacity:.8;transform:scale(1.05)}}
@keyframes halo-appear{0%,100%{opacity:0;transform:scale(.85)}16%,82%{opacity:.85;transform:scale(1)}}
@keyframes halo-circuit{from{stroke-dashoffset:28}to{stroke-dashoffset:-222}}
@keyframes halo-lead{from{stroke-dashoffset:5.5}to{stroke-dashoffset:-244.5}}
@keyframes halo-counter{from{stroke-dashoffset:-38}to{stroke-dashoffset:182}}
@keyframes shimmer-unfold{0%,30%{opacity:0;transform:translateX(-400px) skewX(-18deg)}32%{opacity:.5}44%{opacity:.5;transform:translateX(1450px) skewX(-18deg)}45%,100%{opacity:0;transform:translateX(1450px) skewX(-18deg)}}

/* A compact opening and a distinct rhythm: project, maker, privacy, contact. */
.hero{padding:44px 64px 42px;gap:0 32px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);overflow:clip}
.hero-index{margin-bottom:26px;font-size:10px}.hero-copy{padding:0}.hero-copy>.eyebrow{display:none}
.hero h1{font-size:clamp(44px,5.2vw,72px);line-height:1.06;max-width:670px;margin:0 0 22px}
.hero-copy>p:not(.eyebrow){font-size:16px;line-height:1.75;max-width:425px;margin:0}
.hero .button-row{margin-top:26px}.hero .brand-scene{aspect-ratio:1.38;width:100%;max-width:580px}
.section{padding:76px 0}.section-head{margin-bottom:28px}
#apps.section{padding:34px 0 72px;border:0;background:none;margin:0}
#apps .app-feature{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:0;border:1px solid #bba6ef24;border-radius:24px;background:linear-gradient(125deg,#1b2540,#131d31);overflow:hidden;box-shadow:0 20px 70px #040a162b}
#apps .app-visual{min-height:385px;background:radial-gradient(ellipse at 45% 32%,#f4edf9,#d6c9e8 50%,#b4a1ce);isolation:isolate}
#apps .app-visual:after{width:320px;height:320px;border:1px solid #ffffff55;box-shadow:0 0 0 40px #fff1,0 0 0 80px #fff1;background:transparent}
#apps .project-logo{width:104px;height:104px;border-radius:27px;box-shadow:0 16px 35px #4c34612b;margin-top:4px}
#apps .project-wordmark{font-size:72px;letter-spacing:-.045em;margin-top:14px;color:#49315d}
#apps .visual-topline{color:#554466;font-size:9px;letter-spacing:.15em}#apps .visual-caption{color:#554466}
#apps .app-copy{padding:42px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center}
#apps .app-copy .eyebrow{color:#b6a5db;margin:0 0 16px}#apps .app-copy h3{font-size:clamp(40px,4.2vw,58px);font-weight:500;letter-spacing:-.05em;margin:0 0 14px}
#apps .app-copy>p:not(.eyebrow){font-size:17px;line-height:1.6;color:#c0c9dc;margin:0 0 18px;max-width:340px}
#apps .app-copy .status{font-size:11px;border:0;padding:0;background:transparent;color:#b8c2d6;display:inline-flex;align-items:center;gap:8px;line-height:1.6;margin:0 0 30px}
#apps .status:before{content:"";width:5px;height:5px;flex:0 0 5px;border-radius:50%;background:#b5a0ed}
#apps .app-copy .inline-link{width:auto;min-height:44px;display:inline-flex;align-items:center;color:#d8caff;padding:5px 0;border-color:#a18cce7a}
.studio-layout{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;padding:56px 0 68px;align-items:center;border-top:1px solid #ffffff16}
.studio-heading h2{max-width:380px;margin:0 0 27px}.studio-person{display:flex;align-items:center;gap:14px}.person-mark{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:#b4a2e917;color:#d0baf6;font-size:27px;font-family:Georgia,serif;font-style:italic;border:1px solid #c4a8ef2b}
.studio-person strong{display:block;font-size:14px;font-weight:550;color:#e1e5f1}.studio-person small{display:block;margin-top:5px;font-size:11px;line-height:1.5;color:#9caac4}
.studio-story>p{font-size:18px;line-height:1.85;color:#bcc7dc;margin:0 0 24px;max-width:550px}
.privacy-section{position:relative;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;padding:48px;margin:0 0 64px;border:1px solid #b1c9ff20;border-radius:24px;background:radial-gradient(ellipse at 0% 0%,#496b9d22,transparent 70%),linear-gradient(140deg,#132238,#121c2e);isolation:isolate}
.privacy-intro h2{font-size:clamp(36px,3.6vw,49px);margin:0 0 28px;line-height:1.1}
.privacy-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 24px}.privacy-actions .privacy-open{font-size:12px;min-height:44px;padding:10px 16px;border-radius:100px;border-color:#8196b66b;background:#d9e6ff08;color:#dbe7ff}.privacy-actions .inline-link{font-size:12px;min-height:44px;display:inline-flex;align-items:center}
.privacy-choices{padding:0}.privacy-choices article{gap:16px;padding:18px 0}.privacy-choices article:first-child{padding-top:0}.privacy-choices article+article{border-color:#ffffff10}.privacy-symbol{width:36px;height:36px;flex:0 0 36px;display:grid;place-items:center;background:#c2d6fa0a;color:#adcaff;border-radius:11px}.privacy-symbol svg{width:22px;height:22px}
.privacy-choices h3{font-size:18px;font-weight:550;letter-spacing:-.02em;margin:0 0 5px}.privacy-choices p{font-size:13px;line-height:1.65;margin:0;color:#aebfd8}
.privacy-context{margin-top:4px}.privacy-context summary{font-size:12px;color:#b7c9e4;min-height:44px;display:list-item;align-content:center;list-style-position:inside}.privacy-context p{margin-top:14px}
#kontakt{padding-bottom:64px}.contact-panel{position:relative;padding:44px 48px;border-radius:24px;background:radial-gradient(ellipse at 100% 100%,#c1b8f8,transparent 60%),#b7a4e8}.contact-panel h2{font-size:clamp(36px,4.5vw,58px);max-width:750px}.contact-panel>p:not(.eyebrow){font-size:15px;max-width:580px}.contact-panel .contact-link{font-size:20px;display:inline-block}.contact-actions{gap:20px;margin-top:24px}.contact-actions>span{font-size:12px}.site-footer{padding-top:28px}
@media(hover:hover){#apps .app-copy .inline-link:hover{color:#f0e7ff;text-shadow:0 0 18px #c1a6ff88;border-color:#ddc8ff}.privacy-actions .privacy-open:hover{background:#d9e6ff14;color:white;box-shadow:0 0 24px #8eaaff22}}
@media(min-width:1500px){.hero{min-height:0;padding-top:50px}}
@media(max-width:1100px){.hero{padding:36px 40px;gap:0 20px}.hero h1{font-size:clamp(41px,5.3vw,58px)}#apps .app-copy{padding:32px}.privacy-section{padding:36px;gap:32px}.studio-layout{gap:40px}.contact-panel{padding:38px}}
@media(max-width:760px){
 .hero{padding:30px 23px 0;grid-template-columns:minmax(0,1fr);gap:0}.hero-index{margin-bottom:23px;font-size:8px;letter-spacing:.09em}.hero h1{font-size:clamp(35px,8.7vw,52px);margin-bottom:18px;max-width:560px}.hero-copy{padding:0}.hero-copy>p:not(.eyebrow){font-size:15px;line-height:1.7;max-width:460px}.hero .button-row{margin-top:22px;gap:16px 22px}.hero .button{font-size:13px;min-height:46px}.hero .inline-link{font-size:12px;min-height:44px;display:inline-flex;align-items:center}.hero .brand-scene{aspect-ratio:1.85;max-width:420px;margin:0 auto;--brand-font:clamp(30px,8.7vw,46px)}
 .hero .brand-halo{inset:-9% 0;width:100%;height:118%}.wrap{padding:0 23px}
 #apps.section{padding:12px 0 46px}.section-head{margin-bottom:23px}#apps .section-head h2{font-size:32px}.section-head .eyebrow{margin-bottom:13px}
 #apps .app-feature{grid-template-columns:minmax(0,1fr);border-radius:20px}#apps .app-visual{min-height:245px}#apps .app-visual:after{width:215px;height:215px;box-shadow:0 0 0 30px #fff1,0 0 0 60px #fff1}#apps .project-logo{width:76px;height:76px;border-radius:19px;margin-top:13px}#apps .project-wordmark{font-size:54px;margin-top:8px}#apps .visual-topline{font-size:8px;top:18px;left:22px}#apps .visual-caption{font-size:7px;bottom:15px}
 #apps .app-copy{padding:25px}#apps .app-copy .eyebrow{display:none}#apps .app-copy h3{font-size:36px;margin:0 0 9px}#apps .app-copy>p:not(.eyebrow){font-size:15px;margin-bottom:12px}#apps .status{font-size:10px;margin-bottom:16px}#apps .app-copy .inline-link{font-size:13px}
 .studio-layout{grid-template-columns:minmax(0,1fr);padding:38px 0 44px;gap:24px}.studio-heading h2{font-size:34px;margin:0 0 22px}.studio-heading>.eyebrow{margin-bottom:16px}.studio-story>p{font-size:15px;line-height:1.8;margin-bottom:18px}.studio-person small{font-size:11px}
 .privacy-section{grid-template-columns:minmax(0,1fr);padding:27px 24px;gap:28px;border-radius:20px;margin-bottom:44px}.privacy-intro h2{font-size:clamp(27px,7.8vw,35px);margin-bottom:22px}.privacy-intro .eyebrow{margin-bottom:16px}.privacy-actions{gap:10px 18px}.privacy-actions .inline-link{font-size:11px}.privacy-choices article{padding:16px 0}.privacy-choices p{font-size:13px}.privacy-choices h3{font-size:17px}.privacy-context summary{font-size:11px}
 #kontakt{padding-bottom:40px}.contact-panel{padding:29px 25px;border-radius:20px}.contact-panel h2{font-size:36px;padding-right:0}.contact-panel .contact-link{font-size:16px}.contact-panel>p:not(.eyebrow){font-size:14px}.contact-actions{gap:12px;margin-top:20px}.contact-actions>span{font-size:11px}.news-section{padding:0 0 44px;border:0}
}
@media(max-width:360px){.hero,.wrap{padding-left:19px;padding-right:19px}.hero h1{font-size:34px}.hero .button-row{gap:12px}.hero .brand-scene{aspect-ratio:1.75}.privacy-section{padding:24px 20px}.privacy-intro h2{font-size:31px}.contact-panel{padding:26px 21px}.contact-panel h2{font-size:32px}.contact-panel .contact-link{font-size:14px}}
/* Movement supports the content; focus and reduced motion always show it immediately. */
@media(prefers-reduced-motion:no-preference){
 .scroll-reveal,.app-feature.scroll-reveal,.contact-panel.scroll-reveal{transform:translate3d(0,18px,0);transition:opacity .5s ease,transform .65s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
 .scroll-reveal.scroll-shown,.scroll-reveal:focus-within{opacity:1;transform:none}
 .section-head.scroll-shown h2,.privacy-intro.scroll-shown h2,.studio-layout>div.scroll-shown h2{animation:none}
 .app-feature.scroll-reveal .app-copy>*{transition-duration:.4s,.6s;transition-delay:.08s}
}

/* One full 100-unit orbit, a short rest, then return to the idle V. */
.brand-scene{--logo-duration:6.2s}
.playing .reveal-name>span:nth-child(n){animation:logo-letter-in .65s cubic-bezier(.22,.7,.2,1) calc(.85s + var(--letter)*.04s) both,logo-letter-out .55s ease calc(4.95s + (6 - var(--letter))*.025s) forwards}
.playing .reveal-studio{animation:logo-studio-in .7s ease 1.5s both,logo-studio-out .5s ease 4.85s forwards}
.playing .halo-plane,.playing .halo-plane-back{animation:none}
.playing .halo-forward{animation:halo-circuit var(--logo-duration) linear both}.playing .halo-head{animation:halo-lead var(--logo-duration) linear both}.playing .halo-backward{animation:halo-counter var(--logo-duration) linear both}
@keyframes halo-circuit{0%,8%{stroke-dashoffset:28}73%,100%{stroke-dashoffset:-72}}
@keyframes halo-lead{0%,8%{stroke-dashoffset:5.5}73%,100%{stroke-dashoffset:-94.5}}
@keyframes halo-counter{0%,8%{stroke-dashoffset:-38}73%,100%{stroke-dashoffset:62}}
@keyframes halo-appear{0%,100%{opacity:0;transform:scale(.93)}8%,80%{opacity:.85;transform:scale(1)}92%{opacity:0;transform:scale(1)}}
@keyframes v-unfold{0%,100%{left:50%;top:50%;width:42.3%;transform:translate(-50%,-50%)}7%{left:50%;top:49%;width:43%;transform:translate(-50%,-50%) rotate(-1deg)}27%,80%{left:var(--v-open-x,30.6%);top:50%;width:var(--v-open-width,18%);transform:translate(-50%,-50%)}}
@keyframes brand-bloom{0%,100%{opacity:0;transform:scale(.95)}22%,80%{opacity:.8;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.brand-scene *{animation:none!important;transition:none!important}.brand-halo{display:none}.scroll-reveal{opacity:1!important;transform:none!important}.app-visual:before{display:none}}


/* Stable video geometry; static edge shading avoids a per-frame alpha mask. */
.brand-scene.video-logo{transform:translate3d(0,var(--scroll-lift,0px),0)}
.video-logo .brand-play{overflow:hidden;border-radius:0}
.video-logo .brand-play:focus-visible{border-radius:14px}
.video-logo .brand-reveal{position:absolute;inset:0;width:100%;height:100%;transform:none;transition:none}
.video-logo .reveal-v{max-width:none;width:210%;height:auto;aspect-ratio:1280/720;left:50%;top:50%;transform:translate(-50%,-50%)}
.video-logo.playing .brand-reveal *{animation:none!important}
.video-logo .brand-film{position:absolute;inset:0;overflow:hidden;opacity:0;contain:paint;isolation:isolate;transform:translateZ(0)}
.video-logo .brand-film::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse closest-side at center,transparent 65%,var(--bg) 100%)}
.video-logo .brand-video{position:absolute;width:210%;height:auto;aspect-ratio:1280/720;max-width:none;left:-55%;top:50%;transform:translate3d(0,-50%,0);pointer-events:none;backface-visibility:hidden}
.video-logo.video-ready .brand-film{opacity:1}
.video-logo.video-ready .brand-reveal{opacity:0}
@media(prefers-reduced-motion:reduce){.video-logo .brand-film{display:none}.video-logo.video-ready .brand-reveal{opacity:1}}

/* Individual project identities and original development screenshots. */
.app-visual.project-art,#apps .app-visual.project-art{color:#f3f1e9;background:radial-gradient(ellipse at 30% 20%,#355647,#142620 80%);min-width:0;overflow:hidden}
.app-visual.project-art-afterfall,#apps .app-visual.project-art-afterfall{background:radial-gradient(ellipse at 25% 20%,#66523c,#252a2b 75%)}
.project-art .project-monogram{font-size:clamp(52px,8vw,96px);font-weight:800;letter-spacing:-.08em;line-height:1;color:#ffffffbc;position:relative;z-index:1}
.project-art .project-wordmark,#apps .project-art .project-wordmark{font-family:inherit;font-size:clamp(26px,4vw,48px);font-weight:650;letter-spacing:-.04em;margin-top:18px;max-width:95%;overflow-wrap:anywhere}
.project-art .visual-topline,.project-art .visual-caption{color:#ffffffb8}
.project-gallery{margin:48px 0}.project-gallery>p{color:#afb9cc;max-width:65ch}.project-shots{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-shots figure{margin:0;border:1px solid #ffffff20;border-radius:16px;overflow:hidden;background:#101714}.project-shots img{display:block;width:100%;height:auto;object-fit:contain}.project-shots figcaption{font-size:14px;padding:16px 20px;color:#c5cede}.project-story p{line-height:1.8}.app-copy .status{max-width:100%;white-space:normal}
@media(max-width:650px){.project-shots{grid-template-columns:1fr;gap:18px}.project-gallery{margin:32px 0}.project-art .project-monogram{font-size:60px}.project-art .project-wordmark,#apps .project-art .project-wordmark{font-size:34px}}
.project-art .project-wordmark,#apps .project-art .project-wordmark{color:#f3f1e9}

.app-visual.illustrated-project,#apps .app-visual.illustrated-project{position:relative;display:flex;align-items:center;justify-content:center;padding:0;min-height:0;background:#101b21;overflow:hidden}.illustrated-project:before,.illustrated-project:after{display:none!important}.illustrated-project>img{display:block;width:100%;height:auto;max-width:100%;object-fit:contain;transform:none!important}.illustrated-playground>img{max-height:480px}.illustrated-afterfall>img{align-self:center}.art-disclosure{position:absolute;bottom:12px;left:12px;right:12px;width:fit-content;max-width:calc(100% - 24px);padding:5px 9px;border-radius:5px;background:#071018dd;color:#e4e9e5;font-size:11px;line-height:1.4}.document .illustrated-afterfall{align-self:start;border-radius:16px}@media(max-width:650px){.illustrated-playground>img{max-height:350px}.art-disclosure{font-size:10px;bottom:8px;left:8px}.app-visual.illustrated-project,#apps .app-visual.illustrated-project{min-height:0}}
.document .app-feature:has(.illustrated-project){grid-template-columns:minmax(0,1fr)}.document .app-feature:has(.illustrated-project) .app-copy{max-width:900px;padding:28px clamp(20px,4vw,52px)}.document .illustrated-afterfall{width:100%;border-radius:0}.document .illustrated-playground>img{max-height:480px;width:auto;max-width:100%}

.contact-card{padding:26px clamp(18px,4vw,32px);border:1px solid #8099c32e;border-radius:22px;background:linear-gradient(120deg,#172339,#121a2b);max-width:100%;margin:20px 0}.contact-caption{font:11px/1.5 ui-monospace,monospace;letter-spacing:.14em;color:#a1b0c9;margin:0 0 12px!important}.contact-address{display:inline-block;font-size:clamp(17px,2.8vw,28px);line-height:1.4;font-weight:600;text-decoration:none;color:#e6eaff;overflow-wrap:anywhere;transition:color .2s,text-shadow .2s}.contact-address:hover,.contact-address:focus-visible{color:#c7b5ff;text-shadow:0 0 18px #a88aff66}.contact-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.contact-quick-actions .button,.contact-copy{min-height:44px;font:600 14px/1.4 system-ui;padding:11px 17px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.contact-copy{background:transparent;color:#becce1;border:1px solid #8099c34d;cursor:pointer;transition:background .2s,box-shadow .2s}.contact-copy:hover,.contact-copy:focus-visible{background:#a88aff14;box-shadow:0 0 18px #8c7ceb24}.contact-copy-result{font-size:13px!important;color:#bde4d5!important;margin:12px 0 0!important;min-height:0}.contact-copy-result:empty{display:none}#anfrage{scroll-margin-top:110px}.contact-form-shell{border-radius:20px}.contact-form .form-heading h3{margin:0}.contact-form :is(input,select,textarea){border-radius:12px}.contact-form :is(input,select,textarea):focus{outline:2px solid #a59af0;outline-offset:2px}@media(max-width:540px){.contact-card{padding:20px 16px}.contact-quick-actions{gap:8px}.contact-quick-actions .button,.contact-copy{flex:1 1 140px}.contact-address{font-size:clamp(16px,4.7vw,23px)}.contact-form-shell{padding:20px 16px}}

.contact-quick-actions:empty{display:none}

.project-legal-note{font-size:.88rem;line-height:1.6;color:#c3c9dc;margin:14px 0}.project-legal-note a{text-decoration:underline;text-underline-offset:3px}
