@font-face {
  font-family:DM Sans;
  src:url('./assets/rework/dm-sans.woff2') format('woff2');
  font-weight:100 900;
  font-display:swap;
}
:root {
  --white:#fff;
  --ink:#161616;
  --accent:#e3ff67;
  --muted:#5c5c5c;
  --line:#bdbdbd;
  --gutter:clamp(22px,3.2vw,48px);
}
* {
  box-sizing:border-box;
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px;
}
body {
  margin:0;
  background:var(--white);
  color:var(--ink);
  font-family:'DM Sans',Arial,sans-serif;
  font-size:18px;
  line-height:1.45;
}
a {
  color:inherit;
  text-decoration:none;
}
button,input,textarea,select {
  font:inherit;
}
button,a,select,input,textarea {
  -webkit-tap-highlight-color:transparent;
}
button,select {
  cursor:pointer;
}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:3px solid #7a43d7;
  outline-offset:5px;
}
p,figure,h1,h2,h3 {
  margin:0;
}
img {
  display:block;
  width:100%;
  height:auto;
}
.shell {
  width:min(1600px,100%);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
  white-space:nowrap;
}
.skip-link {
  position:fixed;
  top:12px;
  left:12px;
  padding:12px;
  background:var(--ink);
  color:white;
  z-index:5;
  transform:translateY(-160%);
}
.skip-link:focus {
  transform:translateY(0);
}
.header {
  display:flex;
  align-items:center;
  gap:38px;
  min-height:108px;
}
.wordmark {
  font-size:32px;
  font-weight:800;
  letter-spacing:-1.8px;
  line-height:1;
}
.header nav {
  margin-left:auto;
  display:flex;
  align-items:center;
  gap:34px;
  font-size:15px;
  font-weight:550;
}
.language select {
  border:0;
  background:white;
  padding:10px 4px;
  font-size:15px;
  font-weight:600;
  min-width:56px;
}
.button {
  display:inline-flex;
  justify-content:center;
  align-items:center;
  gap:24px;
  border-radius:100px;
  border:1px solid var(--ink);
  padding:17px 30px;
  font-size:17px;
  line-height:1.2;
  font-weight:650;
  transition:background .18s,color .18s,transform .18s;
}
.button:hover {
  transform:translateY(-2px);
}
.button-dark {
  background:var(--ink);
  color:white;
}
.button-dark:hover {
  background:#353535;
}
.button-outline:hover {
  background:var(--ink);
  color:white;
}
.header .button {
  font-size:15px;
  padding:12px 26px;
}
.arrow {
  width:24px;
  height:24px;
  flex-shrink:0;
  fill:none;
  stroke:currentColor;
  stroke-width:1.6;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.hero {
  display:grid;
  grid-template-columns:1fr 1.05fr;
  gap:36px;
  align-items:center;
  padding-top:65px;
  padding-bottom:92px;
  min-height:690px;
}
.hero-copy {
  padding-bottom:15px;
}
h1,h2 {
  font-weight:750;
  letter-spacing:-.065em;
  line-height:1.01;
}
h1 {
  font-size:clamp(54px,6.05vw,92px);
}
h1>span,h2>span {
  display:block;
}
.dot {
  color:#c7ef32;
}
.lead {
  font-size:clamp(20px,1.8vw,26px);
  line-height:1.4;
  letter-spacing:-.035em;
}
.hero .lead {
  max-width:590px;
  margin:34px 0 36px;
}
.hero-project img {
  aspect-ratio:1.5;
  object-fit:cover;
  object-position:center;
}
.hero-project a {
  display:block;
  background:#d6a8d8;
  overflow:hidden;
}
.hero-project img {
  transition:transform .5s;
}
.hero-project a:hover img {
  transform:scale(1.025);
}
figcaption {
  font-size:14px;
  margin-top:15px;
  font-weight:500;
}
h2 {
  font-size:clamp(42px,5.15vw,78px);
}
h3 {
  font-weight:700;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.04em;
}
.case {
  padding-bottom:110px;
}
.case>h2 {
  padding-top:48px;
  border-top:1px solid var(--ink);
  padding-bottom:42px;
}
.case-intro {
  display:grid;
  grid-template-columns:1fr 1.8fr auto;
  gap:32px;
  align-items:center;
  padding:30px 0;
  border-top:1px solid var(--ink);
}
.case-client h3 {
  font-size:40px;
}
.case-client p {
  font-size:16px;
  margin-top:8px;
  max-width:230px;
}
.case-story {
  padding-left:30px;
  border-left:1px solid var(--ink);
}
.case-story h3 {
  font-size:30px;
  margin-bottom:8px;
}
.case-story p {
  font-size:19px;
  line-height:1.45;
  max-width:680px;
}
.case-intro .button {
  font-size:16px;
  white-space:nowrap;
  padding:16px 22px;
}
.case-image {
  display:block;
  overflow:hidden;
  background:#d6a8d8;
}
.case-image img {
  aspect-ratio:1.9;
  object-fit:cover;
  object-position:center 42%;
}
.project-details {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:38px;
  margin-top:36px;
}
.project-details article {
  border-top:1px solid var(--ink);
  padding-top:20px;
}
.project-details h3 {
  font-size:29px;
  margin-bottom:10px;
}
.project-details p {
  max-width:340px;
  font-size:19px;
  letter-spacing:-.015em;
}
.services {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  align-items:start;
  padding-bottom:74px;
}
.services h2 {
  font-size:clamp(42px,4.8vw,72px);
  padding-top:44px;
}
mark {
  background:var(--accent);
  color:var(--ink);
  padding:0 .06em;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
}
.service-list article {
  border-top:1px solid var(--ink);
  display:flex;
  gap:30px;
  padding:25px 0 28px;
}
.number {
  font-size:22px;
  letter-spacing:-.03em;
  flex-shrink:0;
  padding-top:2px;
}
.service-list h3 {
  font-size:34px;
  margin-bottom:10px;
}
.service-list p {
  font-size:20px;
  max-width:520px;
  letter-spacing:-.02em;
}
.process {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:50px;
  padding-block:36px 70px;
  position:relative;
}
.process:before {
  content:'';
  position:absolute;
  left:var(--gutter);
  right:var(--gutter);
  top:0;
  height:1px;
  background:var(--ink);
}
.process article {
  display:flex;
  gap:24px;
}
.process h3 {
  font-size:29px;
  margin-bottom:10px;
}
.process p {
  font-size:17px;
  max-width:320px;
}
.contact {
  background:var(--ink);
  color:white;
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
  padding-top:80px;
  padding-bottom:55px;
}
.contact h2 {
  font-size:clamp(44px,4.8vw,72px);
}
.contact .lead {
  margin-top:38px;
  max-width:620px;
  font-size:23px;
}
.field {
  display:block;
  border-bottom:1px solid #828282;
  margin-bottom:22px;
  font-size:15px;
}
.field>span {
  display:block;
}
.field input,.field textarea {
  display:block;
  background:transparent;
  border:0;
  color:white;
  width:100%;
  padding:8px 0 10px;
  min-height:34px;
  border-radius:0;
  font-size:18px;
}
.field textarea {
  resize:vertical;
  min-height:78px;
  max-height:300px;
}
.field:focus-within {
  border-color:var(--accent);
}
.consent {
  display:flex;
  gap:12px;
  align-items:flex-start;
  font-size:15px;
  margin:28px 0;
}
.consent input {
  appearance:none;
  width:20px;
  height:20px;
  border:1px solid white;
  margin:0;
  flex-shrink:0;
  cursor:pointer;
}
.consent input:checked {
  background:var(--accent);
  border-color:var(--accent);
  box-shadow:inset 0 0 0 4px var(--ink);
}
.consent a {
  text-decoration:underline;
  text-underline-offset:3px;
}
.button-accent {
  background:var(--accent);
  color:var(--ink);
  border-color:var(--accent);
  width:100%;
  justify-content:space-between;
}
.button-accent:hover {
  background:#d1ef4d;
}
.button:disabled {
  opacity:.6;
  cursor:wait;
  transform:none;
}
.form-status {
  font-size:15px;
  margin-top:15px;
  min-height:22px;
}
.form-status[data-state=error] {
  color:#ffb6bc;
}
.form-status[data-state=success] {
  color:var(--accent);
}
#captcha:not(:empty) {
  margin-bottom:24px;
}
.footer {
  display:flex;
  align-items:center;
  gap:35px;
  padding-top:35px;
  padding-bottom:42px;
  position:relative;
}
.footer:before {
  content:'';
  position:absolute;
  top:0;
  left:var(--gutter);
  right:var(--gutter);
  height:1px;
  background:#747474;
}
.footer .wordmark {
  font-size:27px;
}
.footer nav {
  display:flex;
  gap:26px;
  margin-left:auto;
  font-size:14px;
}
.footer small {
  font-size:12px;
  margin-left:40px;
}
.header nav>a:not(.button):hover,.footer nav a:hover {
  text-decoration:underline;
  text-underline-offset:5px;
}
html:lang(ja) h1,html:lang(ja) h2 {
  letter-spacing:-.04em;
  line-height:1.15;
}
html:lang(ja) h1 {
  font-size:clamp(42px,4.6vw,68px);
}
html:lang(de) h1 {
  font-size:clamp(48px,5.15vw,78px);
}
html:lang(ja) .hero .lead {
  font-size:20px;
}
html:lang(ja) h3 {
  font-size:28px;
}
@media(min-width:1600px) {
  .hero {
    min-height:780px;
  }
}
@media(max-width:1100px) {
  .hero {
    gap:25px;
    min-height:600px;
    padding-top:45px;
    padding-bottom:70px;
  }
  h1 {
    font-size:5.7vw;
  }
  .case-intro {
    grid-template-columns:1fr 2fr;
  }
  .case-intro>.button {
    grid-column:2;
    justify-self:start;
  }
  .services,.contact-grid {
    gap:40px;
  }
  .service-list h3 {
    font-size:29px;
  }
  .services h2,.contact h2 {
    font-size:4.8vw;
  }
  .process {
    gap:24px;
  }
  .process article {
    gap:16px;
  }
  .process h3 {
    font-size:25px;
  }
  .footer small {
    margin-left:0;
  }
}
@media(max-width:760px) {
  .header {
    min-height:90px;
    gap:16px;
    flex-wrap:wrap;
    padding-top:20px;
    padding-bottom:20px;
  }
  .wordmark {
    font-size:28px;
  }
  .header nav {
    order:3;
    width:100%;
    margin:0;
    gap:24px;
    font-size:14px;
    padding-top:10px;
  }
  .header .language {
    margin-left:auto;
  }
  .header nav .button {
    margin-left:auto;
    padding:10px 20px;
    font-size:14px;
  }
  .hero {
    grid-template-columns:1fr;
    gap:38px;
    padding-top:40px;
    padding-bottom:58px;
  }
  .hero-copy {
    padding:0;
  }
  h1 {
    font-size:clamp(49px,9.5vw,70px);
  }
  .hero .lead {
    font-size:21px;
    margin:26px 0;
  }
  .button {
    font-size:16px;
    padding:16px 26px;
  }
  .hero-project img {
    aspect-ratio:1.4;
  }
  .hero-project figcaption {
    font-size:13px;
  }
  h2 {
    font-size:clamp(36px,7.4vw,58px);
  }
  .case>h2 {
    padding-top:35px;
    padding-bottom:30px;
  }
  .case-intro {
    grid-template-columns:1fr;
    gap:24px;
    padding:25px 0;
  }
  .case-client h3 {
    font-size:35px;
  }
  .case-client p {
    max-width:none;
  }
  .case-story {
    padding:0;
    border:0;
  }
  .case-story h3 {
    font-size:27px;
  }
  .case-story p {
    font-size:18px;
  }
  .case-intro>.button {
    grid-column:auto;
  }
  .case-image img {
    aspect-ratio:1.4;
    object-fit:cover;
  }
  .project-details {
    grid-template-columns:1fr;
    gap:25px;
  }
  .project-details h3 {
    font-size:26px;
  }
  .project-details p {
    font-size:18px;
    max-width:500px;
  }
  .case {
    padding-bottom:65px;
  }
  .services {
    grid-template-columns:1fr;
    gap:35px;
    padding-bottom:38px;
  }
  .services h2 {
    padding-top:0;
    font-size:clamp(38px,7.6vw,58px);
  }
  .service-list article {
    gap:24px;
    padding:22px 0;
  }
  .service-list h3 {
    font-size:28px;
  }
  .service-list p {
    font-size:18px;
  }
  .number {
    font-size:19px;
  }
  .process {
    grid-template-columns:1fr;
    gap:30px;
    padding-top:30px;
    padding-bottom:50px;
  }
  .process article {
    gap:24px;
  }
  .process h3 {
    font-size:25px;
  }
  .process p {
    max-width:450px;
  }
  .contact-grid {
    grid-template-columns:1fr;
    gap:45px;
    padding-top:52px;
    padding-bottom:36px;
  }
  .contact h2 {
    font-size:clamp(38px,7.6vw,58px);
  }
  .contact .lead {
    font-size:20px;
    margin-top:28px;
  }
  .footer {
    flex-wrap:wrap;
    gap:28px;
    padding-top:28px;
    padding-bottom:30px;
  }
  .footer nav {
    margin:0;
    width:100%;
    gap:25px;
    order:3;
  }
  .footer small {
    margin-left:auto;
    font-size:11px;
  }
  html:lang(de) h1 {
    font-size:clamp(43px,8.8vw,68px);
  }
  html:lang(ja) h1 {
    font-size:clamp(38px,8.5vw,62px);
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto;
  }
  *,*:before,*:after {
    transition:none!important;
  }
}
/* Preserve the complete client screenshot at every breakpoint. */
.hero-project img,.case-image img {
  aspect-ratio:8 / 5;
  object-fit:contain;
}
.button-accent>span {
  flex:1;
  text-align:center;
}
.process article {
  position:relative;
  padding-right:28px;
}
.process-arrow {
  position:absolute;
  right:0;
  top:8px;
}
@media(max-width:760px) {
  .process-arrow {
    display:none;
  }
  .process article {
    padding-right:0;
  }
}

/* Creativivid identity v0.9: approved MUYAL / Sniglet signature. */
@font-face{font-family:Sniglet;src:url('./assets/brand/sniglet-400.ttf') format('truetype');font-weight:400;font-display:swap}
:root{--white:#F6F4EF;--ink:#181818;--accent:#5A3EE0;--muted:#625F69;--line:#DAD6E2;--soft:#ECE7FF;--gutter:clamp(22px,4vw,64px)}
body{line-height:1.6}.shell{width:min(1400px,100%)}
.header{min-height:140px;gap:28px}.wordmark{display:flex;flex-direction:column;align-items:center;width:134px;flex-shrink:0;font:25px/1 Sniglet,sans-serif;letter-spacing:-.025em}.wordmark img{width:104px;mix-blend-mode:multiply;margin-bottom:-5px}.wordmark span{display:block}.language select{background:transparent}
.button{border-radius:12px;padding:16px 26px;font-size:16px;gap:16px}.button-dark,.button-accent{background:var(--accent);border-color:var(--accent);color:#fff}.button-dark:hover,.button-accent:hover{background:#4630B8;border-color:#4630B8}.button-outline{border-color:var(--line)}
.hero{grid-template-columns:1fr 1fr;gap:42px;min-height:590px;padding-top:32px;padding-bottom:100px}h1,h2{letter-spacing:-.045em;line-height:1.06}h1{font-size:clamp(48px,5.5vw,82px)}.dot{color:var(--accent)}.hero .lead{font-size:clamp(18px,1.6vw,22px);line-height:1.6;letter-spacing:-.02em;margin:28px 0 30px}.hero-copy{padding-bottom:0}
.demo-panel{background:var(--soft);border-radius:16px;padding:28px;min-width:0}.demo-stage{position:relative;aspect-ratio:1.28;display:grid;align-items:center}.hero-project .demo-poster{background:transparent;border-radius:10px;border:1px solid #d4c9dd;box-shadow:0 14px 30px #24103510}.demo-poster img{object-fit:contain}.demo-actions{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}.button-demo{background:var(--white);color:var(--ink);border-color:#c8bfdc}.button-demo:disabled{opacity:.65;cursor:wait}.demo-reset,.demo-back{background:transparent;border:0;text-decoration:underline;color:var(--ink);font-size:14px;padding:8px}.demo-panel figcaption{font-size:13px;color:var(--muted);text-align:center;margin-top:18px}.demo-panel #demo-status{font-size:13px;text-align:center;max-width:100%;color:var(--muted);margin-top:6px}.demo-panel #demo-status:empty{display:none}#splat-canvas{width:100%;height:100%;position:absolute;inset:0;border-radius:12px;overflow:hidden}#splat-canvas canvas{display:block;width:100%;height:100%;touch-action:pan-y;cursor:grab}#splat-canvas canvas:active{cursor:grabbing}[hidden]{display:none!important}
.case{padding-bottom:100px}.case>h2{border-color:var(--line);font-size:clamp(36px,4.6vw,66px);padding-top:56px;max-width:100%}.case-intro,.case-story,.project-details article,.service-list article{border-color:var(--line)}.case-image{border-radius:16px;overflow:hidden;background:white}.case-story p,.project-details p{font-size:18px;line-height:1.6}.case-client h3{font-size:36px}.project-details h3{font-size:24px}.project-details{gap:32px;margin-top:32px}
.services{gap:64px;padding-top:12px;padding-bottom:80px}.services h2{font-size:clamp(36px,4.4vw,64px);padding-top:20px}mark{color:var(--accent);background:transparent;padding:0}.service-list h3{font-size:28px}.service-list p{font-size:18px;line-height:1.6}.number{color:var(--accent);font-size:17px}.process{padding-bottom:96px}.process:before{background:var(--line)}.process h3{font-size:25px}.process p{color:var(--muted);line-height:1.6}
.contact{background:var(--ink)}.contact-grid{padding-block:88px;gap:64px}.contact h2{font-size:clamp(40px,4.8vw,68px)}.contact mark{color:#C5B8FF}.contact .lead{font-size:21px;line-height:1.6;color:#d5d1df}.field{border:0}.field>span{margin-bottom:8px;color:#d5d1df}.field input,.field textarea{border:1px solid #5f5b68;border-radius:10px;background:#ffffff08;padding:12px 14px;color:white}.consent a{text-decoration:underline}.footer{background:var(--white);color:var(--ink);padding-block:32px;border-top:0}.footer .wordmark{font-weight:400;font-size:25px}.footer .wordmark img{width:90px}.footer nav{font-size:14px}.footer small{color:var(--muted)}
@media(max-width:1100px){.case-intro{grid-template-columns:1fr 2fr}.case-intro>.button{grid-column:2}.hero{gap:28px}.header nav{gap:22px}.services{gap:32px}.contact-grid{gap:36px}}
@media(max-width:760px){.header{min-height:132px;gap:12px;flex-wrap:wrap;padding-block:18px}.header .wordmark{width:110px;font-size:22px}.header .wordmark img{width:85px}.header nav{order:3;width:100%;justify-content:space-between;gap:10px;margin:0}.header .language{margin-left:auto}.header .button{padding:10px 16px}.hero{grid-template-columns:1fr;padding-top:40px;padding-bottom:64px;gap:36px;min-height:0}h1{font-size:clamp(42px,9.8vw,68px)}.demo-panel{padding:18px}.demo-stage{aspect-ratio:1.2}.hero .lead{font-size:19px}.case{padding-bottom:60px}.case-intro{grid-template-columns:1fr;gap:20px}.case-story{padding-left:0;border-left:0}.case-intro>.button{grid-column:auto;justify-self:start}.services{grid-template-columns:1fr;padding-bottom:56px}.project-details{grid-template-columns:1fr;gap:24px}.process{grid-template-columns:1fr;padding-bottom:60px}.contact-grid{grid-template-columns:1fr;padding-block:56px}.footer{gap:24px}.footer nav{gap:20px}html:lang(de) h1,html:lang(ja) h1{font-size:clamp(36px,8vw,58px)}}

/* Decorative point arc keeps contact copy and controls unobstructed. */
.contact-copy{position:relative;min-height:570px}.contact-orbit{position:absolute;width:270px;height:225px;left:-30px;bottom:0;opacity:.75;pointer-events:none}.contact-copy h2,.contact-copy>.lead{position:relative;z-index:1}@media(max-width:760px){.contact-copy{min-height:0}.contact-orbit{position:static;width:180px;height:150px;margin:28px 0 0 -22px}}
