@font-face{font-family:Archivo;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/archivo-400.woff2) format('woff2')}
@font-face{font-family:Archivo;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/archivo-500.woff2) format('woff2')}
@font-face{font-family:Archivo;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/archivo-700.woff2) format('woff2')}
@font-face{font-family:Archivo;font-style:normal;font-weight:900;font-display:swap;src:url(/fonts/archivo-900.woff2) format('woff2')}

:root{
  --bg:#FFFFFF; --surface:#F2F2F0; --raise:#E6E6E3; --ink:#0B0B0C; --muted:#55554F;
  --paper:#0B0B0C; --paper-ink:#FFFFFF; --paper-muted:#B4B4AE;
  --yellow:#F5E600; --pink:#FF3DA6; --d-body:#0A0A0A;
  --m:clamp(16px,3.2vw,48px);
  --s-xl:clamp(52px,8.6vw,138px); --s-l:clamp(34px,4.6vw,68px); --s-m:clamp(21px,1.7vw,26px); --s-b:18px; --s-s:15px;
  --ease:cubic-bezier(.2,.7,.2,1);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font-family:Archivo,"Helvetica Neue",Arial,sans-serif;font-size:var(--s-b);line-height:1.55;font-weight:400}
a{color:inherit}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
::selection{background:var(--yellow);color:var(--ink)}
.wrap{padding-left:var(--m);padding-right:var(--m);max-width:1600px;margin:0 auto}
h1,h2,h3{margin:0;font-weight:400;letter-spacing:-.035em;line-height:1}
p{margin:0}
.btn{display:inline-block;background:var(--ink);color:#fff;text-decoration:none;font-weight:700;font-size:var(--s-b);padding:18px 28px;border-radius:0;transition:transform .2s var(--ease),background-color .2s}
.btn:hover{background:var(--pink);color:var(--ink);transform:translateY(-2px)}
.btn:active{transform:translateY(0)}


.top{display:flex;justify-content:space-between;align-items:center;padding-top:22px;padding-bottom:22px;position:relative;z-index:2}
.logo{display:flex;align-items:flex-end;gap:14px;text-decoration:none}
.logo svg{width:40px;height:57px;display:block;--d-body:var(--ink)}
.word{font-weight:900;font-size:36px;line-height:1;letter-spacing:-.02em;white-space:nowrap}
.word b{display:inline-block;width:14px;height:14px;background:var(--pink);border-radius:2px;margin-left:3px}
.top nav a{font-size:16px;text-decoration:none;margin-left:clamp(14px,2.4vw,34px);padding:10px 0;display:inline-block;transition:color .2s}
.top nav a:hover{color:#C8007A}
.menu-btn{display:none}


.hero{position:relative;min-height:calc(88svh - 84px);display:grid;grid-template-columns:repeat(12,1fr);align-items:center;overflow:hidden}
.hero-text{grid-column:1/8;grid-row:1;position:relative;z-index:1;padding-bottom:6vh}
.hero h1{font-size:var(--s-xl);line-height:.92;letter-spacing:-.045em;max-width:9.5ch}
.hero .lede{font-size:var(--s-m);line-height:1.45;max-width:44ch;margin-top:36px}
.hero .btn{margin-top:40px}
.lens{grid-column:8/13;grid-row:1;justify-self:center;width:min(23vw,330px);aspect-ratio:343/490}
.lens svg{width:100%;height:100%;display:block}


.services{padding-top:clamp(120px,14vw,200px);padding-bottom:clamp(120px,14vw,200px)}
.svc-head h2{font-size:var(--s-l);max-width:17ch}
.svc-head p{margin-top:28px;max-width:58ch;color:var(--muted)}
.tiles{list-style:none;margin:72px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tile{background:var(--surface);padding:clamp(28px,2.6vw,40px);display:flex;flex-direction:column}
.tile .ic{width:clamp(84px,7vw,108px);height:auto;aspect-ratio:1;margin-bottom:32px;transition:transform .5s var(--ease)}
.tile:hover .ic{transform:scale(1.05) rotate(-3deg)}
.tile h3{font-size:clamp(26px,2.2vw,34px);letter-spacing:-.025em}
.tile .tag{color:var(--muted);font-size:var(--s-s);margin-top:6px}
.tile p:last-child{margin-top:18px;font-weight:400}
.tile a{font-weight:500}

.web{background:var(--surface);padding-top:clamp(110px,12vw,180px);padding-bottom:clamp(110px,12vw,180px)}
.web-grid{display:grid;grid-template-columns:repeat(12,1fr);column-gap:24px;align-items:start}
.web-copy{grid-column:1/8}
.web h2{font-size:var(--s-l);max-width:13ch}
.web .lede{font-size:var(--s-m);line-height:1.45;max-width:44ch;margin-top:30px}
.lede a{display:block;width:max-content;margin-top:16px;font-size:var(--s-b);font-weight:500}
.points{display:grid;grid-template-columns:1fr 1fr;gap:44px 40px;margin-top:64px;max-width:820px}
.points h3{font-size:var(--s-m);letter-spacing:-.015em;font-weight:500;margin-bottom:10px}
.points h3 i{display:inline-block;width:12px;height:12px;background:var(--ink);margin-right:12px;vertical-align:.1em}
.points p{color:var(--muted);max-width:34ch}
.phone{grid-column:9/13;justify-self:end;width:min(100%,330px);background:#0B0B0C;border-radius:38px;padding:14px;position:sticky;top:12vh}
.phone .scr{background:#F6F5F1;color:#0B0B0C;border-radius:26px;overflow:hidden;font-size:15px;line-height:1.4}
.phone .bar{display:flex;justify-content:space-between;align-items:center;padding:16px 18px 10px;font-weight:700}
.phone .bar small{font-weight:500;font-size:15px}
.phone .pic{display:block;width:100%;height:190px;object-fit:cover}
.phone .body{padding:18px}
.phone .body strong{display:block;font-size:24px;line-height:1.05;letter-spacing:-.02em;margin-bottom:8px}
.phone .open{color:#2E6B3F;font-weight:700;font-size:15px}
.phone .bk{display:block;text-align:center;background:#0B0B0C;color:#fff;font-weight:700;padding:13px;margin-top:16px}
.phone .row{display:flex;justify-content:space-between;padding:12px 18px;background:#E2DED6;font-size:15px}
.phone .row+.row{margin-top:2px}
.phone figcaption{color:#B4B4AE;font-size:var(--s-s);text-align:center;padding-top:14px}


.portals{padding-top:clamp(120px,14vw,200px);padding-bottom:clamp(120px,14vw,200px)}
.portals-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(40px,5vw,80px);align-items:start}
.portals-head{max-width:560px}
.portals h2{font-size:var(--s-l);max-width:13ch}
.portals .lede{font-size:var(--s-m);line-height:1.45;max-width:40ch;margin-top:30px}
.sample{margin:0;max-width:760px;justify-self:end;width:100%}
.win{background:#0B0B0C;border-radius:18px;padding:0 10px 10px;overflow:hidden}
.win-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;color:#B4B4AE;font-size:15px;padding:14px 8px 12px}
.win-name{color:#fff;font-weight:700}
.win-url{background:#26262A;padding:4px 14px;border-radius:999px}
.board{background:var(--surface);border-radius:10px;padding:clamp(14px,2vw,24px);font-size:15px;line-height:1.35}
.board-top{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.tile{flex:1 1 150px;padding:14px 16px;color:#0B0B0C;font-weight:700;display:flex;justify-content:space-between;align-items:baseline}
.tile b{font-size:30px;letter-spacing:-.03em}
.lane{background:var(--raise);padding:14px;margin-top:10px}
.lane-h{display:flex;align-items:center;gap:10px;font-weight:700;margin-bottom:12px}
.lane-h i{width:14px;height:14px;border-radius:50%;background:var(--c)}
.lane-h span{color:var(--muted);font-weight:400}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.card{background:#fff;padding:14px 16px;transition:transform .2s var(--ease)}
.card:hover{transform:translateY(-3px)}
.card strong{display:block;font-size:17px}
.card .meta{color:var(--muted);margin-top:4px}
.card .act{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.card .act span{background:var(--c);color:#0B0B0C;font-weight:700;padding:6px 12px;font-size:15px}
.card .act em{font-style:normal;color:var(--ink);background:var(--raise);padding:6px 12px;font-size:15px}
.board-cap{color:var(--muted);font-size:var(--s-s);margin-top:16px;text-align:center}
.pp{display:grid;grid-template-columns:repeat(4,1fr);gap:36px;margin-top:72px}
.pp h3{font-size:var(--s-m);font-weight:500;letter-spacing:-.015em;margin-bottom:10px}
.pp h3 i{display:inline-block;width:12px;height:12px;border-radius:50%;background:var(--pink);margin-right:12px;vertical-align:.1em}
.pp p{color:var(--muted)}


.contact{background:var(--paper);color:var(--paper-ink);min-height:86svh;display:flex;flex-direction:column;justify-content:space-between;padding-top:clamp(64px,8vw,110px);padding-bottom:40px}
.contact .ask{font-size:var(--s-m);line-height:1.4;max-width:30ch}
.pick{margin-top:30px;display:flex;flex-wrap:wrap;gap:10px;max-width:760px}
.pick button{border:0;background:#26262A;color:#fff;padding:12px 18px;font-size:16px;cursor:pointer;transition:background-color .2s,transform .15s}
.pick button:hover{background:#3A3A3F}
.pick button:active{transform:scale(.97)}
.pick button[aria-pressed="true"]{background:var(--yellow);color:#0B0B0C}
.pick-note{margin-top:14px;color:var(--paper-muted);font-size:var(--s-s);min-height:1.5em}
.mail{display:block;font-size:clamp(40px,8.6vw,150px);letter-spacing:-.05em;line-height:.95;text-decoration:none;margin-top:12vh;transition:color .25s;overflow-wrap:normal}
.mail:hover{color:var(--yellow)}
.contact .call{margin-top:clamp(40px,5vw,72px)}
.contact .call p{font-size:var(--s-m);color:#B4B4AE}
.contact .tel{display:inline-block;margin-top:10px;font-size:clamp(36px,5.2vw,84px);letter-spacing:-.04em;line-height:1;text-decoration:none;color:#fff;border-bottom:5px solid var(--pink);padding-bottom:6px;transition:color .25s,border-color .25s}
.contact .tel:hover{color:var(--yellow);border-color:var(--yellow)}
.call-btns{display:none}
.phone-bar{display:none}
@media (max-width:680px){
  .contact .tel{font-size:clamp(30px,9vw,40px);border-bottom-width:4px}
  .call-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}
  .call-btns a{display:flex;align-items:center;justify-content:center;min-height:56px;border-radius:12px;border:2px solid #fff;color:#fff;font-weight:700;font-size:18px;letter-spacing:.04em;text-decoration:none;transition:background-color .1s,color .1s}
  .call-btns a:active{background:#fff;color:var(--ink)}
  .phone-bar{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:8px;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--ink);padding:8px 8px calc(8px + env(safe-area-inset-bottom))}
  .phone-bar a{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:12px;border:2px solid #fff;color:#fff;font-weight:700;font-size:16px;letter-spacing:.04em;text-decoration:none;transition:background-color .1s,color .1s}
  .phone-bar a:active{background:#fff;color:var(--ink)}
  .phone-bar a.pb-main{background:var(--pink);border-color:var(--pink);color:var(--ink)}
  body{padding-bottom:76px}
}
.contact .feet{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-top:40px;font-size:16px;color:#B4B4AE}
.contact .feet a{text-decoration:none;font-weight:700}


footer{padding-top:80px;padding-bottom:28px;overflow:hidden}
.big{font-weight:900;font-size:17.3vw;line-height:.8;letter-spacing:-.05em;color:#EDEDEA;white-space:nowrap;margin-left:-.07em}
.big::before{content:"Dreamcolor"}
footer .legal{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:10px;color:var(--muted);font-size:var(--s-s);margin-top:30px}
footer .legal a{text-decoration:none}



.atmo img{display:block;width:100%;height:100%;object-fit:cover}
.atmo{background:#000}
.atmo-wide{height:clamp(300px,48vh,540px);overflow:hidden;position:relative}
.atmo-wide img{object-position:50% 35%}
.atmo-set img{object-position:50% 45%}
.px-on .atmo img.px{position:absolute;left:0;top:0;height:var(--vh,100vh);will-change:transform}
@media (max-width:680px){.atmo-wide{height:clamp(240px,42vh,360px)}}

.js .rise{opacity:0;transform:translateY(24px);transition:opacity .7s var(--ease),transform .7s var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.js .rise.in{opacity:1;transform:none}
.js .lens svg{filter:blur(18px);opacity:.35;transform:scale(.94);transition:filter 1.6s var(--ease),opacity 1.6s var(--ease),transform 1.6s var(--ease)}
.js .lens.in svg{filter:blur(0);opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .rise,.js .lens svg{opacity:1;transform:none;filter:none;transition:none}
  *{transition-duration:.01ms !important}
}


@media (max-width:1000px){
  .hero{grid-template-columns:1fr;align-content:start;min-height:0;padding-bottom:90px}
  .lens{grid-column:1;grid-row:1;justify-self:end;width:min(36vw,240px);margin-top:4px}
  .hero-text{grid-column:1;grid-row:2;margin-top:24px}
  .web-grid,.portals-grid{grid-template-columns:1fr}
  .sample{margin-top:56px;justify-self:stretch}
  .web-copy,.phone{grid-column:1}
  .tiles{grid-template-columns:1fr 1fr}
  .phone{position:static;justify-self:center;margin-top:72px}
  .portals .lede{margin-top:24px}
  .pp{grid-template-columns:1fr 1fr}
}
@media (max-width:620px){
  body{font-size:17px}
  .top nav a{font-size:15px;padding:12px 0}
  .top nav a.hide-s{display:none}
  .js .menu-btn{display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;width:48px;height:48px;margin-right:-10px;padding:0;border:0;background:none;cursor:pointer}
  .js .menu-btn span{display:block;width:28px;height:3px;border-radius:2px;background:var(--ink);transition:transform .25s var(--ease),opacity .2s}
  .js .top.open .menu-btn span:nth-child(1){transform:translateY(9px) rotate(45deg)}
  .js .top.open .menu-btn span:nth-child(2){opacity:0}
  .js .top.open .menu-btn span:nth-child(3){transform:translateY(-9px) rotate(-45deg)}
  .js .top{z-index:60}
  .js .top nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);padding:4px var(--m) 28px;box-shadow:0 18px 30px rgba(0,0,0,.12)}
  .js .top.open nav{display:block}
  .js .top nav a,.js .top nav a.hide-s{display:block;margin:0;padding:14px 0;font-size:30px;letter-spacing:-.025em}
  .word{font-size:27px}
  .logo svg{width:30px;height:43px}
  .word b{width:11px;height:11px}
  .points,.pp{grid-template-columns:1fr;gap:32px}
  .tiles{grid-template-columns:1fr;margin-top:48px}
  .win-url{display:none}
  .lane{padding:10px}
  .tile{flex-basis:40%}
  .mail{font-size:11.2vw;margin-top:9vh}
  .contact{min-height:88svh}
      .services h2{font-size:30px}
  .mail{font-size:14vw}
}


.doc{padding-top:clamp(56px,7vw,110px);padding-bottom:clamp(110px,12vw,180px)}
.doc h1{font-size:var(--s-l);max-width:16ch}
.doc .lede{font-size:var(--s-m);line-height:1.45;max-width:38ch;margin-top:28px}
.doc h2{font-size:var(--s-m);font-weight:500;letter-spacing:-.015em;margin-top:56px}
.doc p,.doc li{max-width:62ch}
.doc p+p{margin-top:14px}
.doc h2+p{margin-top:12px}
.doc ul{padding-left:1.1em;margin:12px 0 0}
.doc li+li{margin-top:8px}
.doc .btn{margin-top:40px}
.doc .lost{display:flex;gap:clamp(24px,5vw,80px);align-items:center;flex-wrap:wrap}
.doc .lost svg{width:min(30vw,190px);height:auto;--d-body:var(--ink);filter:blur(5px)}
footer .legal nav a{display:inline-block;margin-left:20px;padding:12px 0;min-height:44px}
.doc .big-h{font-size:var(--s-l);font-weight:400;letter-spacing:-.035em;margin-top:clamp(80px,9vw,140px);max-width:18ch}
.doc .wide{max-width:62ch;margin-top:24px;font-size:var(--s-m);line-height:1.45}
.compare{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:40px}
.compare .col{padding:clamp(26px,3vw,44px)}
.compare .usual{background:var(--surface)}
.compare .ours{background:var(--ink);color:#fff}
.compare h3{font-size:var(--s-m);font-weight:500;letter-spacing:-.015em}
.compare ul{list-style:none;padding:0;margin:22px 0 0}
.compare li{position:relative;padding-left:26px;max-width:none}
.compare li+li{margin-top:12px}
.compare li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px}
.compare .usual li::before{background:#9A9A94}
.compare .ours li::before{background:var(--yellow)}
.trio{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:40px}
.trio>div{background:var(--surface);padding:clamp(24px,2.6vw,36px)}
.trio h3{font-size:var(--s-m);font-weight:500;letter-spacing:-.015em;margin:0}
.trio p{margin-top:10px;color:var(--muted)}
.faq{display:grid;grid-template-columns:1fr 1fr;gap:16px 48px;margin-top:40px}
.qa h3{font-size:var(--s-m);font-weight:500;letter-spacing:-.015em;margin:0}
.qa p{margin-top:10px}
.doc .tech{margin-top:clamp(64px,7vw,100px);color:var(--muted);font-size:var(--s-s);max-width:80ch}
@media (max-width:1000px){.compare,.faq{grid-template-columns:1fr}.trio{grid-template-columns:1fr 1fr}}
@media (max-width:620px){.trio{grid-template-columns:1fr}}
footer .legal nav a:first-child{margin-left:0}
