:root{color-scheme:dark;--bg:#101713;--ink:#e5e8de;--muted:#a5afa6;--pine:#9eaf94;--line:#2b352e}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif;-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}a,button{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--pine);outline-offset:6px}a:hover,button:hover{color:var(--pine)}.wrap{width:min(1120px,calc(100% - 96px));margin-inline:auto}.site-header{height:112px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:9px;font-weight:600;font-size:18px;letter-spacing:-.4px}.wordmark span{font-weight:400}.wordmark img{margin-right:5px}nav{display:flex;gap:36px;font-size:14px;color:#bec7bd}.hero{position:relative;display:grid;grid-template-columns:1.2fr 1fr;align-items:center;min-height:620px;padding-top:55px;padding-bottom:65px}.hero-copy{position:relative;z-index:1}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--pine);font-weight:500;margin:0 0 27px;display:flex;align-items:center;gap:10px}.dot{width:5px;height:5px;display:inline-block;background:var(--pine);border-radius:50%;flex-shrink:0}h1{font-size:clamp(48px,5.4vw,72px);line-height:1.05;letter-spacing:-3.5px;font-weight:500;margin:0 0 25px}.period{color:var(--pine)}.tagline{font-size:clamp(25px,2.6vw,35px);font-weight:400;line-height:1.3;letter-spacing:-.8px;margin:0 0 24px}.intro{max-width:395px;font-size:15px;color:var(--muted);line-height:1.8;margin:0 0 34px}.text-link{display:inline-flex;gap:28px;align-items:center;font-size:13px;border-bottom:1px solid #53634f;padding-bottom:7px}.text-link span{font-size:19px;color:var(--pine)}.forest{align-self:stretch;position:relative;display:flex;flex-direction:column;justify-content:center;margin-right:-20px}.forest svg{width:100%;max-height:440px}.forest-caption{text-align:center;font-size:10px;letter-spacing:1px;color:#859382}.section-heading{display:flex;justify-content:space-between;align-items:center;padding-bottom:30px;border-bottom:1px solid var(--line)}h2{font-size:25px;letter-spacing:-.7px;font-weight:400;line-height:1.4;margin:0}.section-heading span{font-size:12px;color:var(--muted)}.app{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:49px 0;border-bottom:1px solid var(--line);align-items:center}.app-heading{display:flex;align-items:center;gap:18px;margin-bottom:19px}.app-icon{width:57px;height:57px;border:1px solid #45533e;border-radius:13px;display:grid;place-items:center;background:#263323;flex-shrink:0}.app-icon svg{width:31px;height:31px}.app h3{font-weight:500;font-size:25px;letter-spacing:-.7px;margin:0;line-height:1.2}.app-category{font-size:11px;color:var(--muted);margin-top:5px}.app-description{font-size:15px;color:var(--muted);max-width:360px;margin:0 0 19px}.features{display:flex;flex-wrap:wrap;gap:7px 16px;list-style:none;padding:0;margin:0 0 26px;font-size:11px;color:#bdc6b7}.features li::before{content:'·';color:var(--pine);margin-right:7px}.app details{max-width:390px}.app summary{list-style:none;cursor:pointer;font-size:12px;width:fit-content;border-bottom:1px solid #53634f;padding-bottom:6px}.app summary::-webkit-details-marker{display:none}.app summary::after{content:'↗';margin-left:24px;color:var(--pine)}.app details[open] summary::after{content:'−'}.app details p{font-size:13px;color:var(--muted);margin-bottom:0}.product-stage{height:262px;border:1px solid #2f3c30;overflow:hidden;background:#19221b;display:grid;place-items:center;position:relative;border-radius:3px}.reader{width:270px;background:#e3e3d5;color:#414a3a;box-shadow:0 12px 32px #0003;padding:23px 26px 28px;transform:rotate(-3deg);border-radius:3px}.demo-label{font-size:8px;letter-spacing:1.6px;display:flex;justify-content:space-between;align-items:center}.reader h4{font-family:Georgia,serif;font-size:19px;font-weight:400;margin:14px 0 12px}.reader p{font-family:Georgia,serif;font-size:11px;line-height:1.9;margin:0}.reader .highlight{display:block;background:#bfccb1;margin-inline:-8px;padding-inline:8px}.reader-bottom{display:flex;justify-content:space-between;border-top:1px solid #b9c1ae;margin-top:16px;padding-top:9px;font-size:7px;letter-spacing:1px}.rainbell-stage{background:#19231f}.timer-preview{width:220px;text-align:center;position:relative}.timer-label{font-size:8px;letter-spacing:2px;color:#b9c7b5;margin:0 0 12px}.timer-ring{width:152px;height:152px;border-radius:50%;border:1px solid #465d4c;border-top:2px solid #b5c6a4;border-right:2px solid #b5c6a4;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:auto}.timer-time{font-size:35px;font-weight:300;letter-spacing:1px;line-height:1.3}.timer-state{font-size:7px;color:#aebda6;letter-spacing:2px;margin-top:6px}.timer-bottom{font-size:8px;color:#9dac98;letter-spacing:1px;margin-top:17px}.preview-caption{position:absolute;bottom:12px;right:14px;font-size:8px;letter-spacing:1px;color:#849281}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding-top:86px;padding-bottom:80px}.about .eyebrow{margin-bottom:17px}.about h2{font-size:32px;letter-spacing:-1px;line-height:1.3}.about-copy p{font-size:15px;color:var(--muted);margin:0 0 17px;max-width:440px}.origin{font-size:11px;color:var(--pine);display:flex;gap:9px;align-items:center;margin-top:26px}.contact{border-top:1px solid var(--line);padding-block:26px;display:flex;align-items:center;justify-content:space-between}.contact h2{font-size:17px}.contact p{font-size:12px;color:var(--muted);margin:0}footer{border-top:1px solid var(--line);padding:27px 0 35px;display:flex;align-items:center;gap:40px;font-size:11px;color:#9daa9b}footer div{display:flex;gap:24px;margin-left:auto}footer button{padding:0;background:none;border:0;cursor:pointer;font-size:11px}.footer-note{color:#788676}.skip-link{position:fixed;top:-100px;left:20px;padding:10px 15px;background:var(--ink);color:var(--bg);z-index:10}.skip-link:focus{top:10px}dialog{background:#19221b;color:var(--ink);border:1px solid #53634f;border-radius:5px;padding:38px;max-width:460px;width:calc(100% - 40px)}dialog::backdrop{background:#0009}dialog p{font-size:14px;color:var(--muted)}dialog .eyebrow{margin-bottom:15px}.close-dialog{position:absolute;right:12px;top:8px;border:0;background:none;font-size:25px;cursor:pointer}
@media(min-width:1500px){.hero{min-height:680px}}@media(max-width:800px){.wrap{width:calc(100% - 48px)}.hero{min-height:570px;grid-template-columns:1.3fr .7fr}.forest{margin-left:-70px;opacity:.7}.eyebrow{font-size:8px;letter-spacing:1.4px}h1{font-size:53px}.app,.about{gap:30px}.product-stage{height:250px}.reader{width:235px;padding-inline:20px}.forest-caption{display:none}.footer-note{display:none}}@media(max-width:560px){.wrap{width:calc(100% - 40px)}.site-header{height:86px}.wordmark{font-size:15px;gap:5px}.wordmark img{width:22px;margin-right:2px}nav{gap:18px;font-size:12px}.hero{display:block;min-height:0;padding-top:76px;padding-bottom:75px}.hero-copy{max-width:350px}.hero .eyebrow{font-size:8px;letter-spacing:1.1px}h1{font-size:49px;letter-spacing:-2.7px}.tagline{font-size:28px}.intro{font-size:14px;max-width:290px}.forest{position:absolute;right:-8px;bottom:22px;width:190px;opacity:.28;z-index:0;pointer-events:none}.section-heading{align-items:start;gap:15px}.section-heading span{font-size:10px;max-width:120px;text-align:right}.app{grid-template-columns:1fr;gap:28px;padding:35px 0}.app-description{max-width:100%}.product-stage{height:255px}.reader{width:270px}.about{grid-template-columns:1fr;gap:26px;padding:57px 0}.about h2{font-size:30px}.contact{display:block}.contact p{margin-top:6px}footer{gap:10px}footer div{gap:20px}.features{font-size:11px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* One quiet fall: the cone settles instead of looping beside the copy. */
.falling-cone{transform-box:fill-box;transform-origin:50% 15%;animation:cone-fall 3.2s .1s linear both;pointer-events:none}
@keyframes cone-fall{
  0%{transform:translate(0,0) rotate(-12deg);opacity:.85}
  18%{transform:translate(4px,28px) rotate(8deg);opacity:.85}
  40%{transform:translate(-7px,85px) rotate(-18deg);opacity:.8}
  64%{transform:translate(8px,157px) rotate(21deg);opacity:.7}
  88%{transform:translate(2px,245px) rotate(48deg);opacity:.45}
  95%{transform:translate(7px,239px) rotate(67deg);opacity:.35}
  100%{transform:translate(9px,245px) rotate(76deg);opacity:.3}
}
@media(prefers-reduced-motion:reduce){.falling-cone{animation:none;transform:rotate(-12deg);opacity:.7}}
/* Give the artwork its own space on narrow screens instead of hiding it behind copy. */
@media(max-width:800px){
  .hero{display:block;min-height:0;padding-top:40px;padding-bottom:30px}
  .hero-copy{max-width:480px}
  .forest{position:relative;inset:auto;width:min(100%,340px);margin:12px auto 0;opacity:1;z-index:auto;pointer-events:none}
  .forest svg{display:block;width:100%;height:auto;max-height:none;overflow:visible}
  .forest-caption{display:none}
}
@media(max-width:560px){
  .hero{padding-top:32px;padding-bottom:24px}
  .hero-copy{max-width:none}
  .hero .eyebrow{margin-bottom:22px}
  .hero .intro{max-width:340px;margin-bottom:25px}
  .forest{width:min(100%,290px);margin-top:0}
}

.forest.awaiting-view .falling-cone{animation-play-state:paused}
.wordmark .brand-logo{display:block;width:240px;height:96px;object-fit:contain;margin:0}.wordmark:has(.brand-logo){margin-left:-32px;gap:0}
@media(max-width:560px){.wordmark .brand-logo{width:180px;height:72px}.wordmark:has(.brand-logo){margin-left:-25px;margin-right:-15px}}

/* Keep the studio character close to the Kapy Labs name without turning the
   About section into another hero illustration. */
.about-studio-heading{display:flex;align-items:center;gap:22px}
.about-studio-logo{width:92px;height:92px;object-fit:contain;flex:0 0 auto;filter:drop-shadow(0 10px 20px #0005)}
.about-studio-heading .eyebrow{margin-bottom:12px}
@media(max-width:800px){.about-studio-heading{gap:16px}.about-studio-logo{width:78px;height:78px}}
@media(max-width:560px){.about-studio-heading{gap:15px}.about-studio-logo{width:72px;height:72px}.about-studio-heading .eyebrow{margin-bottom:9px}}

/* Use the actual Kapy character as the compact studio mark in both headers. */
.wordmark .studio-mark{display:block;width:38px;height:38px;object-fit:contain;margin-right:3px;filter:drop-shadow(0 4px 10px #0004)}
@media(max-width:560px){.wordmark .studio-mark{width:46px;height:46px;margin-right:2px}}

/* A calm, branded dead end for GitHub Pages and other missing routes. */
.not-found-page{min-height:100svh;display:flex;flex-direction:column;overflow-x:hidden}
.not-found-main{flex:1;display:flex;align-items:center}
.not-found{display:grid;grid-template-columns:minmax(0,1fr) minmax(250px,.68fr);align-items:center;gap:clamp(32px,6vw,72px);padding-block:clamp(58px,9vh,96px)}
.not-found-copy{position:relative;z-index:1}
.not-found-copy .eyebrow{margin-bottom:20px}
.not-found-copy h1{max-width:540px;margin-bottom:22px;font-size:clamp(40px,4.8vw,62px)}
.not-found-copy .intro{max-width:470px}
.not-found-art{position:relative;display:grid;place-items:center;min-height:330px;isolation:isolate}
.not-found-art::before{content:'';position:absolute;width:280px;height:280px;border-radius:50%;background:radial-gradient(circle at 50% 45%,#314638 0,#24352b 45%,#18231c 70%,transparent 71%);box-shadow:0 0 75px #61745b18;z-index:-2}
.not-found-orbit{position:absolute;border:1px solid #6d806725;border-radius:50%;z-index:-1}
.not-found-orbit::after{content:'';position:absolute;width:7px;height:7px;border-radius:50%;background:#9eaf94;box-shadow:0 0 14px #9eaf9499}
.orbit-one{width:310px;height:210px;transform:rotate(-14deg)}
.orbit-one::after{right:32px;top:17px}
.orbit-two{width:250px;height:310px;transform:rotate(24deg)}
.orbit-two::after{left:16px;bottom:58px;width:5px;height:5px}
.not-found-character{display:block;width:min(100%,275px);height:auto;filter:drop-shadow(0 22px 30px #0008);transform:translateY(-3px)}
.not-found-ground{position:absolute;bottom:20px;width:min(88%,280px);height:1px;background:linear-gradient(90deg,transparent,#65775f88,transparent)}
.not-found-page footer{margin-top:auto}
@media(max-width:800px){
  .not-found{grid-template-columns:1fr;gap:10px;padding-block:52px 25px}
  .not-found-art{min-height:275px}
  .not-found-art::before{width:235px;height:235px}
  .not-found-character{width:min(70vw,225px)}
  .orbit-one{width:260px;height:178px}.orbit-two{width:210px;height:260px}
  .not-found-ground{bottom:16px;width:min(72%,240px)}
}
@media(max-width:560px){
  .not-found-page .site-header nav{gap:13px}
  .not-found{padding-top:42px}
  .not-found-copy h1{font-size:38px;letter-spacing:-1.8px}
  .not-found-art{min-height:245px;margin-top:4px}
  .not-found-art::before{width:210px;height:210px}
  .not-found-character{width:min(68vw,205px)}
  .orbit-one{width:230px;height:158px}.orbit-two{width:186px;height:230px}
  .not-found-page footer{flex-wrap:wrap;padding-bottom:28px}
}

/* Real RIVI Line Lock preview */
.rivi-stage{contain:inline-size;height:auto;min-width:0;max-width:100%;aspect-ratio:1080/730;padding:7px;border-color:#4a4e40;border-radius:10px;background:#252a24}
.rivi-card-video{display:block;inline-size:100%;max-inline-size:100%;min-inline-size:0;height:100%;max-height:100%;object-fit:contain;border-radius:5px;background:#e8dec9}
.rivi-stage .preview-caption{right:13px;bottom:12px;padding:4px 7px;border:1px solid #ffffff1a;border-radius:999px;background:#101713d9;color:#c6cfc4;line-height:1}
@media(max-width:560px){.rivi-stage{width:100%;min-width:0;max-width:100%;height:auto;aspect-ratio:1080/730;padding:6px}.rivi-card-video{inline-size:100%;max-inline-size:100%;min-inline-size:0;height:100%}}
