/* Tessel studio site. Single shared stylesheet, no external requests. */

/* Fonts (self-hosted, SIL Open Font License, see fonts/<family>/OFL.txt) */
@font-face{font-family:"Archivo";src:url("fonts/archivo/Archivo-Variable.ttf") format("truetype");font-weight:100 900;font-stretch:62% 125%;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("fonts/instrument-serif/InstrumentSerif-Regular.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("fonts/instrument-serif/InstrumentSerif-Italic.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}

:root{
  --paper:#f4efe7; --paper2:#ebe4d8; --ink:#1b1a17; --soft:#6f6a61; --line:#d9d1c4;
  --red:#e4471c; --red-dark:#c23a14;
  --voila:#12805c; --pause:#b4530f; --parlando:#101215;
  --sans:"Archivo",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --serif:"Instrument Serif",Georgia,serif;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:72px}
body{margin:0;background:var(--paper);color:var(--ink);font:400 17px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
.wrap{max-width:1240px;margin:0 auto;padding-left:32px;padding-right:32px}
.label{font-size:13px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--soft);margin:0 0 18px}
.h2{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(40px,5.2vw,72px);line-height:1;letter-spacing:-.01em}
.h2 em{color:var(--red)}

/* Accessibility */
.skip-link{position:absolute;left:16px;top:-100px;z-index:100;background:var(--ink);color:var(--paper);padding:10px 16px;border-radius:999px;text-decoration:none;font-weight:600}
.skip-link:focus{top:12px}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;border-radius:4px}
.btn.fill:focus-visible,.top .cta:focus-visible{outline-color:var(--ink)}
.card:focus-visible{outline-color:var(--ink);border-radius:28px}
.contact :focus-visible{outline-color:#fff}
footer :focus-visible{outline-color:var(--paper)}
summary:focus-visible{outline-offset:6px}

/* Header */
.top{position:sticky;top:0;z-index:20;background:rgba(244,239,231,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.top .wrap{display:flex;justify-content:space-between;align-items:center;height:64px;font-size:15px}
.mini{font-weight:800;font-variation-settings:"wdth" 125;letter-spacing:.02em;text-decoration:none;font-size:17px}
.top nav{display:flex;gap:28px;align-items:center}
.top nav a{text-decoration:none}
.top nav a:hover{color:var(--red)}
.top .cta{background:var(--ink);color:var(--paper);padding:8px 16px;border-radius:999px}
.top .cta:hover{color:var(--paper);background:var(--red)}

/* Hero */
.hero{padding-top:28px;padding-bottom:0;overflow:hidden}
.giant{margin:0;font-weight:900;font-variation-settings:"wdth" 125;color:var(--red);
  font-size:min(calc((100vw - 64px) / 5.05),233px);line-height:.82;letter-spacing:-.035em;text-transform:uppercase;white-space:nowrap}
.hero-row{display:grid;grid-template-columns:1.05fr 1fr;gap:40px;align-items:end;margin-top:44px}
.tagline{margin:0;font-family:var(--serif);font-size:clamp(34px,4.3vw,58px);line-height:1.02;letter-spacing:-.01em}
.tagline em{color:var(--red)}
.lede{margin:22px 0 0;font-size:20px;line-height:1.45;color:#3d3a34;max-width:34ch}
.btns{display:flex;gap:12px;margin-top:30px;margin-bottom:56px;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:14px 22px;border-radius:999px;text-decoration:none;font-weight:600;font-size:16px}
.btn.fill{background:var(--red);color:#fff}
.btn.fill:hover{background:var(--red-dark)}
.btn.line{border:1.5px solid var(--ink)}
.btn.line:hover{background:var(--ink);color:var(--paper)}
.phones{position:relative;height:430px}
.ph{position:absolute;width:200px;border-radius:34px;padding:7px;background:#1b1a17;box-shadow:0 30px 60px rgba(40,25,10,.25)}
.ph img{display:block;width:100%;height:auto;border-radius:28px}
.ph.p1{left:4%;transform:rotate(-8deg);top:90px}
.ph.p2{left:calc(50% - 107px);z-index:2;top:20px;width:214px}
.ph.p3{right:4%;transform:rotate(8deg);top:90px}


/* Apps */
.apps{padding-top:110px;padding-bottom:110px}
.apps-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:44px}
.apps-head>p{margin:0;color:var(--soft);max-width:36ch;font-size:18px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.card{position:relative;border-radius:28px;overflow:hidden;color:#fff;text-decoration:none;display:flex;flex-direction:column;padding:30px 30px 0;transition:transform .25s ease}
a.card:hover{transform:translateY(-4px)}
.card.voila{background:var(--voila)} .card.pause{background:var(--pause)} .card.parlando{background:var(--parlando)}
.card .icon{width:56px;height:56px;border-radius:13px;box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.card h3{margin:20px 0 4px;font-size:34px;font-weight:800;font-variation-settings:"wdth" 110;letter-spacing:-.02em;line-height:1}
.card .what{margin:0;font-size:18px;opacity:.92}
.card ul{list-style:none;margin:18px 0 0;padding:0;font-size:15px;opacity:.88}
.card li{padding:6px 0;border-top:1px solid rgba(255,255,255,.18)}
.card .foot{display:flex;justify-content:space-between;align-items:center;margin-top:20px;font-size:15px}
.card .price{font-family:var(--serif);font-size:26px}
.card .soon{background:rgba(255,255,255,.16);padding:5px 12px;border-radius:999px;font-size:14px}
.card .shot{margin:28px auto 0;width:78%;border-radius:30px 30px 0 0;padding:7px 7px 0;background:rgba(0,0,0,.35)}
.card .shot img{display:block;width:100%;height:260px;object-fit:cover;object-position:top;border-radius:24px 24px 0 0}
.card.parlando .shot{background:#2a2d33}
.parlando .what b{color:#2dd4bf;font-weight:inherit}

/* Promises */
.promises{background:var(--paper2);padding-top:110px;padding-bottom:110px}
.promises .h2{max-width:14ch;margin-bottom:56px}
.prom{display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px}
.prom div{border-top:1px solid var(--line);padding:30px 0 34px}
.prom h3{margin:0 0 10px;font-size:24px;font-weight:700;letter-spacing:-.01em}
.prom p{margin:0;color:#4a463f;font-size:18px;max-width:40ch}

/* Studio */
.studio{padding-top:110px;padding-bottom:110px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.studio p{margin:0 0 1em;font-size:20px;line-height:1.5;max-width:36ch}
.studio p.label{margin:0 0 18px;font-size:13px;line-height:1.5;max-width:none}
.badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.badge{border:1px solid var(--line);background:rgba(255,255,255,.5);border-radius:999px;padding:8px 14px;font-size:15px}

/* FAQ */
.faq{padding-bottom:110px}
.faq .h2{margin-bottom:34px}
details{border-top:1px solid var(--line);padding:22px 0}
details:last-child{border-bottom:1px solid var(--line)}
summary{cursor:pointer;list-style:none;font-size:21px;font-weight:600;display:flex;justify-content:space-between;gap:20px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--red);font-weight:400;font-size:28px;line-height:1}
details[open] summary::after{content:"–"}
details p{margin:12px 0 0;color:#4a463f;font-size:18px;max-width:62ch}

/* Contact + footer */
.contact{background:var(--red);color:#fff;padding-top:96px;padding-bottom:100px}
.contact .label{color:#ffd9cc}
.mail{display:inline-block;max-width:100%;overflow-wrap:anywhere;font-family:var(--serif);font-size:clamp(34px,6.6vw,96px);line-height:1;text-decoration:none;border-bottom:3px solid #fff;padding-bottom:6px}
.contact p{margin:22px 0 0;font-size:18px;color:#ffe6dd}
.contact p.label{margin:0 0 18px;font-size:13px;color:#ffd9cc}
footer{background:var(--ink);color:#b7b0a4;font-size:15px}
.fcols{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:28px;padding-top:64px;padding-bottom:48px}
.fcols .mini{color:var(--paper);display:inline-block;margin-bottom:10px}
.fcols h2{margin:0 0 12px;color:var(--paper);font-size:14px;font-weight:600}
.fcols a,.fcols .off{display:block;text-decoration:none;padding:4px 0}
.fcols a:hover{color:var(--paper)}
.fcols p{margin:0;max-width:26ch}
.fbottom{border-top:1px solid #34322d;padding-top:20px;padding-bottom:28px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:14px}
.fbottom a{text-decoration:none}
.fbottom a:hover{color:var(--paper)}

/* Text pages (legal, 404) */
.page{padding-top:56px;padding-bottom:110px}
.narrow{max-width:760px}
.page h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,72px);line-height:1;letter-spacing:-.01em}
.page .updated{margin:16px 0 0;color:var(--soft);font-size:15px}
.page .lead{margin:28px 0 0;font-size:21px;line-height:1.45}
.page h2{margin:44px 0 10px;font-size:22px;font-weight:700;letter-spacing:-.01em}
.page p,.page li,.page address{font-size:18px;line-height:1.6;color:#3d3a34}
.page p{margin:0 0 1em}
.page ul{margin:0 0 1em;padding-left:1.2em}
.page li{margin:4px 0}
.page address{font-style:normal;margin:0 0 1em}
.page a{color:var(--red-dark);text-underline-offset:3px}
.page a:hover{color:var(--ink)}
.page .btns{margin-bottom:0}
.page .btn.fill{color:#fff}
.page .btn.line{color:var(--ink)}
.page .btn.line:hover{color:var(--paper)}
.page .alt-lang{margin-top:56px;padding-top:32px;border-top:1px solid var(--line)}
.page .alt-lang h2{margin-top:0}

/* Full-screen sections: each one fills the screen below the 64px header */
html{scroll-padding-top:64px}
.hero,.apps,.promises,.studio,.faq,.contact{min-height:calc(100vh - 64px);min-height:calc(100svh - 64px);display:flex;flex-direction:column;justify-content:center}
.promises>.wrap,.contact>.wrap{width:100%}
.hero{justify-content:flex-start}
.hero .hero-row{flex:1}
.studio{display:grid;align-content:center}
.apps,.promises,.studio,.faq,.contact{padding-top:80px;padding-bottom:80px}
.promises .h2{margin-bottom:40px}

@media (max-width:980px){
  .grid{grid-template-columns:1fr}
  .card .shot{width:min(78%,320px)}
  .card .shot img{height:300px}
}
@media (max-width:760px){
  .wrap{padding-left:16px;padding-right:16px}
  .top nav a:not(.cta){display:none}
  .giant{font-size:calc((100vw - 32px) / 5.05)}
  .hero-row{grid-template-columns:1fr;margin-top:28px;gap:0}
  .btns{margin-bottom:8px}
  .phones{height:330px}
  .ph{width:140px;border-radius:24px;padding:5px}.ph img{border-radius:20px}
  .ph.p2{width:156px;left:calc(50% - 78px)} .ph.p1{left:0;top:70px} .ph.p3{right:0;top:70px}
  .apps,.promises,.studio{padding-top:72px;padding-bottom:72px}
  .faq{padding-top:72px;padding-bottom:72px}
  .apps-head{flex-direction:column;align-items:start}
  .prom{grid-template-columns:1fr}
  .studio{grid-template-columns:1fr;gap:24px}
  .fcols{grid-template-columns:1fr 1fr}
  .fcols>div:first-child{grid-column:1/-1}
  .contact{padding-top:64px;padding-bottom:68px}
  summary{font-size:19px}
  .page{padding-top:36px;padding-bottom:72px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .card{transition:none}
  a.card:hover{transform:none}
}
