/* Product-led additions to the original FN DigiStudio design system. */
:root { --tovia-paper:#f7ecde; --tovia-blush:#eec8c3; --tovia-ink:#34252d; --tovia-rose:#a9475a; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.hero-slide[hidden] { display:none !important; }
.hero-slide.is-active { animation:hero-enter .48s ease both; }
@keyframes hero-enter { from { opacity:.6; } to { opacity:1; } }
.hero-switcher { position:relative; background:#020713; }
.hero-switcher .home-hero { min-height:680px; }
.hero-switcher-controls { position:relative; z-index:7; display:flex; align-items:center; justify-content:center; gap:24px; min-height:46px; background:#08142a; border-top:1px solid rgba(255,255,255,.15); }
.hero-switcher-controls > button { width:36px;height:36px; padding:0; color:#fff; background:none; border:0; font-size:1.7rem; line-height:1; }
.hero-switcher-controls > button:hover { color:var(--gold); }
.hero-switcher-dots { display:flex; gap:12px; align-items:center; }
.hero-switcher-dots button { width:34px; height:10px; padding:0; background:#6c7890; border:0; border-radius:8px; }
.hero-switcher-dots button.is-active { background:var(--gold); }
.hero-switcher button:focus-visible,.store-badge:focus-visible,.store-cta-icon-link:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.home-product-actions { align-items:center; }
.store-cta { display:inline-flex; align-items:center; gap:10px; vertical-align:middle; }
.store-cta-icon,.store-cta-icon-link img { display:block; width:49px; height:49px; flex:none; object-fit:cover; border-radius:11px; box-shadow:0 7px 20px #0004; }
.store-cta-icon-link { display:inline-block; border-radius:11px; }
.store-badge { display:inline-flex; min-width:143px; min-height:46px; align-items:center; gap:8px; padding:5px 11px; color:#fff; background:#030303; border:1px solid #777; border-radius:7px; font-family:Arial,Helvetica,sans-serif; line-height:1.05; text-align:left; }
.store-badge:hover { background:#202020; }
.store-badge .apple-glyph { min-width:24px; font-family:-apple-system,BlinkMacSystemFont,Arial,sans-serif; font-size:1.65rem; line-height:1; }
.store-badge-copy { display:grid; gap:1px; }
.store-badge-copy small { font-size:.56rem; letter-spacing:0; }
.store-badge-copy strong { font-size:1.03rem; font-weight:700; letter-spacing:-.02em; }
.store-badge.is-pending { opacity:.62; cursor:default; }
.tovia-home-hero { min-height:680px; color:var(--tovia-ink); background:radial-gradient(circle at 75% 35%,#f7d9cb,transparent 38%),#e5bdb9 url('../img/tovia-paper-stack.webp') center/cover no-repeat; }
.tovia-home-hero::before { background:linear-gradient(90deg,rgba(252,241,228,.48),rgba(252,241,228,.06)); }
.tovia-home-hero::after { background:#a84961; }
.tovia-home-grid { display:grid; min-height:608px; grid-template-columns:1.06fr .94fr; gap:30px; align-items:center; padding:calc(var(--header) + 38px) 0 55px; }
.tovia-home-copy { position:relative; z-index:3; padding:20px 0 25px; }
.tovia-home-hero h1 { max-width:680px; color:#302530; font-size:clamp(3.5rem,6.2vw,6rem); line-height:.96; text-shadow:none; }
.tovia-home-hero h1 span { color:#a84961; }
.tovia-home-hero .lead { max-width:550px; margin:24px 0 0; color:#473b43; font-size:clamp(1rem,1.5vw,1.18rem); line-height:1.65; text-shadow:none; }
.tovia-home-hero .btn-primary,.tovia-page .btn-primary,.tovia-home-feature .btn-primary,.tovia-home-memories .btn-primary { color:white; background:#a84961; box-shadow:none; }
.tovia-home-hero .btn-primary:hover,.tovia-page .btn-primary:hover,.tovia-home-feature .btn-primary:hover,.tovia-home-memories .btn-primary:hover { background:#893347; }
.tovia-home-hero .btn-secondary { color:#573847; background:#fff9f0; border-color:#bc8390; }
.tovia-page-link { align-self:center; color:#713a4a; font-size:.78rem; font-weight:850; text-decoration:underline; text-underline-offset:4px; }
.tovia-hero-art { position:relative; display:flex; min-height:460px; align-items:center; justify-content:center; }
.tovia-splash-frame,.tovia-page-splash { position:relative; width:min(58%,275px); padding:6px; background:#221c23; border-radius:31px; box-shadow:0 23px 53px #75465566; transform:rotate(4deg); }
.tovia-splash-frame img,.tovia-page-splash img { width:100%; height:440px; object-fit:cover; object-position:top; border-radius:25px; }
.tovia-art-note { position:absolute; right:0; bottom:35px; padding:11px 17px; color:#663d4c; background:#fffaf1; box-shadow:0 12px 30px #583d3933; font-family:Georgia,serif; font-size:1.1rem; font-style:italic; transform:rotate(-5deg); }
.tovia-home-feature,.tovia-home-memories { position:relative; color:var(--tovia-ink); background:#f8efe5; }
.tovia-home-memories { background:#ead1cc; }
.tovia-feature-grid,.tovia-page-grid,.tovia-section-grid { display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(24px,5vw,70px); align-items:center; }
.tovia-home-memories .tovia-feature-grid { grid-template-columns:1.2fr .8fr; }
.tovia-feature-copy h2 { max-width:600px; }
.tovia-feature-copy p { max-width:510px; margin-top:20px; color:#604b4e; font-size:1.06rem; line-height:1.7; }
.tovia-feature-grid > img { width:100%; max-height:450px; object-fit:cover; border:10px solid #fffaf2; border-radius:8px; box-shadow:0 20px 50px #73555436; }
.home-selected-work .home-work-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.home-selected-work .work-item > img { height:270px; aspect-ratio:auto; object-fit:cover; object-position:top; }
.home-selected-work .section-heading > p { color:#b0bdca; }
.hero-product-identity { display:flex; align-items:center; gap:14px; margin-bottom:20px; }
.hero-product-identity img { width:64px; height:64px; object-fit:cover; border-radius:16px; box-shadow:0 12px 25px #0004; }
.product-hero-actions { align-items:center; }
.cta-panel:has(.store-cta) { align-items:center; }
.tovia-page { color:var(--tovia-ink); background:#f7ecde; }
.tovia-page-hero { position:relative; overflow:hidden; padding:calc(var(--header) + 54px) 0 68px; background:#e7bfbd url('../img/tovia-paper-stack.webp') center/cover no-repeat; }
.tovia-page-hero::before { position:absolute; inset:0; content:''; background:linear-gradient(90deg,#faf0e5bb,transparent); pointer-events:none; }
.tovia-page-grid { position:relative; z-index:1; min-height:540px; grid-template-columns:1.08fr .92fr; }
.tovia-page-copy h1 { max-width:690px; color:#302530; font-size:clamp(3.5rem,6vw,6rem); line-height:.98; }
.tovia-page-copy h1 span { color:#a84961; }
.tovia-page-copy .lead { max-width:570px; margin:22px 0 0; color:#584a50; }
.tovia-page-splash { width:min(60%,310px); margin:auto; }
.tovia-page-splash img { height:500px; }
.tovia-page .section { padding:clamp(75px,8vw,115px) 0; }
.tovia-paper-section,.tovia-blush-section { position:relative; isolation:isolate; }
.tovia-paper-section { background:#faf4e9; }
.tovia-blush-section { background:#f0d5d0; }
.tovia-paper-section::before,.tovia-blush-section::before { position:absolute; z-index:1; top:-18px; left:0; width:100%; height:20px; content:''; pointer-events:none; clip-path:polygon(0 100%,0 36%,4% 47%,9% 23%,14% 45%,20% 29%,26% 54%,32% 20%,38% 48%,45% 35%,51% 55%,58% 25%,65% 47%,71% 28%,77% 53%,84% 24%,91% 45%,96% 25%,100% 43%,100% 100%); }
.tovia-paper-section::before { background:#faf4e9; }
.tovia-blush-section::before { background:#f0d5d0; }
.tovia-section-grid.reverse { grid-template-columns:1.2fr .8fr; }
.tovia-section-grid h2 { max-width:650px; }
.tovia-section-grid p { max-width:520px; margin-top:18px; color:#655354; font-size:1.05rem; line-height:1.7; }
.tovia-scrap-frame { position:relative; margin:0; padding:11px 11px 18px; background:#fffaf2; border-radius:4px; box-shadow:0 22px 48px #7051512b; transform:rotate(1deg); }
.tovia-scrap-frame::before { position:absolute; z-index:2; top:-13px; left:43%; width:92px; height:27px; content:''; background:#e4c7a3a8; transform:rotate(-4deg); }
.tovia-section-grid.reverse .tovia-scrap-frame { transform:rotate(-1deg); }
.tovia-scrap-frame img { width:100%; max-height:480px; object-fit:cover; object-position:center; }
.tovia-scrap-frame figcaption { padding:10px 5px 0; color:#7c6462; font-family:Georgia,serif; font-size:.95rem; font-style:italic; }
.tovia-closing { text-align:center; background:#e8c7c3; }
.tovia-closing > .wrap > img { width:76px; height:76px; margin:0 auto 22px; border-radius:18px; }
.tovia-closing p { margin:14px 0 25px; color:#5f4d50; }
.tovia-closing .store-cta { justify-content:center; }
.build-hero { background:#0a1b31; }
.build-hero::before { background:linear-gradient(100deg,#071427 0%,#102b49 75%,#193d64 100%); }
.build-hero h1 { max-width:860px; }
.build-intro,.build-products,.build-process { position:relative; }
.build-intro::before,.build-products::before,.build-process::before { position:absolute; top:0; right:0; left:0; height:23px; content:''; background:linear-gradient(172deg,#071427 48%,transparent 49%); pointer-events:none; }
.build-capabilities { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.build-capabilities article { min-width:0; min-height:455px; overflow:hidden; padding:30px; background:white; border:1px solid #dce3ea; border-radius:16px; }
.build-capabilities .number { color:#3168b1; }
.build-capabilities h3 { margin:22px 0 12px; color:#112c4d; font-size:clamp(1.6rem,2.6vw,2.2rem); }
.build-capabilities p { max-width:500px; min-height:72px; color:#4a5a69; line-height:1.65; }
.build-capabilities article > img { width:100%; height:190px; margin-top:25px; object-fit:cover; object-position:top; border:1px solid #d3dce8; border-radius:9px; }
.build-app-images { display:flex; align-items:end; justify-content:center; gap:20px; height:210px; overflow:hidden; }
.build-app-images img { width:110px; height:190px; object-fit:cover; object-position:top; border:4px solid #24344b; border-radius:16px; }
.build-flow { display:flex; align-items:center; justify-content:center; gap:10px; min-height:190px; margin-top:25px; padding:18px; background:#e9f0f8; border-radius:10px; }
.build-flow b { display:grid; min-width:0; flex:1; min-height:73px; place-items:center; padding:8px; color:#21538b; background:#fff; border:1px solid #b4cbe3; border-radius:7px; font-size:.75rem; text-align:center; }
.build-flow i { color:#587ba4; font-style:normal; }
.build-work .work-item > img { object-position:top; }
.build-products { background:#0b1a30; }
.build-products .section-heading > p { color:#aab8c8; }
.build-product-links { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.build-product-links a { display:flex; align-items:center; gap:18px; padding:22px; border:1px solid #48637e; border-radius:12px; background:#112b49; }
.build-product-links a:hover { background:#1a3b60; }
.build-product-links img { width:64px; height:64px; flex:none; border-radius:15px; }
.build-product-links p { margin:7px 0 0; color:#b9c8d8; font-size:.86rem; }
.build-product-links a > span { margin-left:auto; font-size:1.5rem; }
.build-process .process > div { color:#fff; }
.build-process .process p { color:#bbc5d1; }
@media(max-width:1050px) {
  .tovia-home-grid { grid-template-columns:1fr .8fr; }
  .tovia-home-hero h1 { font-size:clamp(3rem,6vw,4.5rem); }
  .tovia-splash-frame img { height:360px; }
  .tovia-hero-art { min-height:385px; }
}
@media(max-width:760px) {
  .hero-switcher .home-hero { min-height:100svh; }
  .hero-switcher-controls { position:absolute; top:68%; right:0; left:0; justify-content:space-between; min-height:0; padding:0 6px; background:none; border:0; pointer-events:none; transform:translateY(-50%); }
  .hero-switcher-controls > button { width:34px; height:34px; color:#fff; background:#08142ac9; border-radius:50%; pointer-events:auto; }
  .hero-switcher-dots { display:none; }
  .tovia-home-hero { background-color:#ebcac2; background-size:auto 100%; background-position:center; }
  .tovia-home-grid { display:flex; min-height:calc(100svh - var(--header)); flex-direction:column; align-items:center; justify-content:space-between; gap:0; padding:calc(var(--header) + 24px) 0 25px; }
  .tovia-home-copy { width:100%; padding:0; text-align:center; }
  .tovia-home-hero h1 { max-width:12ch; margin:auto; font-size:clamp(2.8rem,10vw,4.1rem); }
  .tovia-home-hero .lead { max-width:35ch; margin:14px auto 0; font-size:.95rem; line-height:1.5; }
  .tovia-home-hero .actions { flex-direction:row; justify-content:center; gap:8px; margin-top:17px; }
  .tovia-home-hero .actions .btn { width:auto; max-width:none; padding:0 13px; }
  .tovia-home-hero .actions .btn-secondary { display:inline-flex; }
  .tovia-home-hero .actions .tovia-page-link { width:100%; }
  .tovia-hero-art { min-height:240px; width:100%; }
  .tovia-splash-frame { width:150px; border-radius:19px; }
  .tovia-splash-frame img { height:235px; border-radius:14px; }
  .tovia-art-note { right:9%; bottom:15px; font-size:.8rem; }
  .tovia-feature-grid,.tovia-home-memories .tovia-feature-grid,.tovia-page-grid,.tovia-section-grid,.tovia-section-grid.reverse { grid-template-columns:1fr; }
  .tovia-home-memories .tovia-feature-copy { order:0; }
  .tovia-home-memories img { order:1; }
  .tovia-page-grid { gap:30px; }
  .tovia-page-hero { padding:calc(var(--header) + 30px) 0 55px; background-size:auto 100%; }
  .tovia-page-copy { text-align:center; }
  .tovia-page-copy .hero-product-identity { justify-content:center; }
  .tovia-page-copy .lead { margin-inline:auto; }
  .tovia-page-copy .actions { justify-content:center; }
  .tovia-page-splash { width:215px; }
  .tovia-page-splash img { height:350px; }
  .tovia-section-grid.reverse figure { order:1; }
  .tovia-section-grid.reverse > div { order:0; }
  .home-selected-work .home-work-grid,.build-capabilities,.build-product-links { grid-template-columns:1fr; }
  .build-capabilities article { min-height:0; }
  .build-capabilities p { min-height:0; }
}
@media(max-width:540px) {
  .hero-switcher .home-hero { min-height:100svh; }
  .hero-switcher-controls { min-height:48px; }
  .home-product-actions { flex-wrap:wrap; }
  .home-product-actions .store-cta { justify-content:center; width:100%; }
  .home-hero .home-product-actions .btn-primary { width:100%; max-width:300px; }
  .tovia-home-grid { min-height:calc(100svh - var(--header)); }
  .tovia-home-hero .actions .btn { min-height:42px; }
  .tovia-home-hero .actions .btn-secondary { display:inline-flex; }
  .tovia-home-hero .home-product-actions .btn-primary { width:auto; }
  .tovia-hero-art { min-height:205px; }
  .tovia-splash-frame { width:125px; }
  .tovia-splash-frame img { height:190px; }
  .tovia-art-note { right:2%; }
  .tovia-feature-grid > img { border-width:6px; }
  .tovia-page-copy h1 { font-size:clamp(2.8rem,11vw,4rem); }
  .tovia-scrap-frame { transform:none !important; }
  .tovia-scrap-frame img { max-height:320px; }
  .home-selected-work .work-item > img { height:210px; }
  .product-hero-actions .store-cta { width:100%; justify-content:center; }
  .build-product-links img { width:52px; height:52px; }
}
@media(prefers-reduced-motion:reduce) { .hero-slide.is-active { animation:none; } }
