/* Arivo design refinement — shared visual rules and homepage composition. */
:root{--color-accent:#7041d9;--page-bg:#faf9f6;--color-bg:#f0eee9;--card-bg:#fff;--color-line:#dedbd5}
[data-theme="dark"]{--color-accent:#b69aff;--page-bg:#101116;--color-bg:#17181f;--card-bg:#1c1d26;--color-line:#30313c}
html{color-scheme:light;scroll-padding-top:90px}
html[data-theme="dark"]{color-scheme:dark}
[hidden]{display:none!important}
:focus-visible{outline:3px solid var(--color-accent);outline-offset:5px}
.btn{min-height:46px}
.btn-accent{background:#7445df;color:white!important;box-shadow:0 5px 24px #7445df24}
.btn-accent:hover{background:#6032c5}
button:disabled{cursor:wait;opacity:.65}
.theme-toggle,.hamburger,.sheet-close{min-width:44px;min-height:44px}
.sheet:not(.open){visibility:hidden}
.sheet.open{visibility:visible}
body.home .wrap{max-width:1320px;padding-inline:clamp(22px,5.4vw,80px)}
body.home .nav-inner{min-height:82px;padding-block:15px}
.home .nav-links{gap:22px}
.home .nav-links a{font-size:.8rem}
.home .nav-actions .btn{font-size:.78rem;padding:11px 17px}
.home header{background:var(--header-bg);backdrop-filter:blur(18px)}
.home .brand-name{letter-spacing:.12em;font-size:1rem}
.home .hero{min-height:690px;padding:0;align-items:center;border-bottom:1px solid var(--color-line)}
.home .hero-wrap{translate:none;opacity:1;pointer-events:none}
.home .hero-content{padding:82px 0 76px;max-width:660px;pointer-events:auto}
.home .studio-label{display:flex;align-items:center;gap:10px;margin-bottom:38px;font-size:.71rem;letter-spacing:.13em;text-transform:uppercase;font-weight:600}
.studio-label::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--color-accent);box-shadow:0 0 0 5px #9270e91a}
.home .hero .eyebrow{font-size:.66rem;letter-spacing:.16em;margin-bottom:17px}
.home .hero h1{font-size:clamp(3.5rem,6.5vw,5.5rem);line-height:1.02;letter-spacing:-.06em;max-width:680px;font-weight:600;margin-bottom:27px;text-wrap:initial}
.home .hero h1 .hl{color:var(--color-accent)}
.home .hero-sub{max-width:440px;font-size:1rem;line-height:1.85;opacity:.78;margin-bottom:30px}
.home .hero-actions{gap:12px}
.home .hero-actions .btn{padding:15px 22px;font-size:.84rem}
.home .scroll-hint{width:fit-content;margin-top:42px;opacity:.7;font-size:.65rem;letter-spacing:.14em}
.home .hero-video{left:38%;width:62%;object-position:center;opacity:.45;filter:brightness(.65) saturate(.65)}
.home[data-theme="light"] .hero-video,[data-theme="light"] .home .hero-video{filter:grayscale(.4);opacity:.13}
.home .hero-scrim{background:linear-gradient(90deg,var(--page-bg) 25%,transparent 75%),linear-gradient(0deg,var(--page-bg),transparent 45%)}
.home .hero-bg::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 79% 50%,#8f62e51a,transparent 45%);pointer-events:none}
.home .hero-coin{width:43%;height:85%;right:0;bottom:5%;translate:none}
.home .hero-clouds{display:none}
.hero-orbit{position:absolute;right:7%;top:20%;width:34%;aspect-ratio:1;border:1px solid #9b7bf528;border-radius:50%;pointer-events:none}
.hero-orbit::before{content:'';position:absolute;inset:13%;border:1px solid #9b7bf51a;border-radius:50%;background:url('../logo/arivo-mark.svg') center/55% no-repeat;opacity:.18}
.hero-orbit span{position:absolute;bottom:-30px;left:0;right:0;text-align:center;font-size:.58rem;letter-spacing:.27em;opacity:.5}
.home .trust{background:var(--page-bg);padding:27px 0!important}
.home .trust-item{font-size:.78rem;line-height:1.6;align-items:center;opacity:.8}
.home .trust-item + .trust-item{border-left:1px solid var(--color-line);padding-left:26px}
.home section:not(.hero):not(.trust){padding-block:100px}
.home .section-head{max-width:720px;margin-bottom:44px}
.home .section-head .eyebrow{font-size:.67rem;letter-spacing:.15em;opacity:1;margin-bottom:17px}
.home .section-head h2{font-size:clamp(2rem,3.7vw,3.2rem);letter-spacing:-.045em;font-weight:600;max-width:650px;line-height:1.1}
.home .section-head>p:last-child{max-width:560px;line-height:1.8;font-size:.95rem}
.home .cards{gap:20px;counter-reset:services}
.home .card{padding:34px;border-radius:20px;min-height:260px;counter-increment:services}
.home .card::after{content:'0' counter(services);position:absolute;inset:30px 30px auto auto;background:none;color:var(--color-text);font-size:.72rem;letter-spacing:.12em;opacity:.4}
.home .card-icon{width:40px;height:40px;margin-bottom:28px}
.home .card h3{font-size:1.45rem;letter-spacing:-.025em}
.home .card>p{max-width:440px;font-size:.92rem;line-height:1.8}
.home .card-toggle{min-height:44px;margin-top:17px;font-size:.8rem}
.home .card-more{visibility:hidden}
.home .card.open .card-more{visibility:visible;max-height:800px}
.home .pillar{background:transparent;border:0;border-left:1px solid var(--color-line);border-radius:0;padding:10px 28px;box-shadow:none}
.home .pillar-num{font-size:.83rem;opacity:1;letter-spacing:.12em;margin-bottom:36px}
.home .pillar h3{font-size:1.3rem;line-height:1.25;margin-bottom:14px}
.home .pillar p{line-height:1.85;font-size:.9rem}
.home .stepper{gap:50px;grid-template-columns:.8fr 1.2fr}
.home .step-nav{gap:9px}
.home .step-btn{padding:20px;border-radius:12px}
.home .step-btn[aria-selected="true"]{transform:none;background:var(--color-bg);box-shadow:none;border-color:var(--color-line)}
.home .step-panel{padding:38px;min-height:330px;background:var(--color-bg);border-radius:20px;box-shadow:none}
.home .step-panel h3{letter-spacing:-.03em}
.home .refs.refs-1{grid-template-columns:1fr}
.home .ref-card.has-shot{margin:0;display:grid;grid-template-columns:1.3fr 1fr;column-gap:0;row-gap:0;border:1px solid var(--color-line);padding:0;overflow:hidden}
.home .ref-card.has-shot .ref-shot{grid-column:1;grid-row:1/5;border:0;overflow:hidden;min-height:350px;background:var(--color-bg)}
.home .ref-shot img{height:100%;object-fit:cover;object-position:top left}
.home .ref-card.has-shot>:not(.ref-shot){grid-column:2;padding-inline:32px}
.home .ref-card.has-shot .ref-head{padding-top:35px}
.home .ref-head h3{font-size:1.55rem;letter-spacing:-.03em}
.home .ref-head .ref-meta{font-size:.66rem;line-height:1.7;margin-top:10px}
.home .ref-desc{font-size:.9rem;line-height:1.85;margin:20px 0}
.home .ref-tags{gap:6px;margin-bottom:20px}
.home .ref-tag{font-size:.63rem}
.home .ref-link{font-size:.8rem}
.home .faq{max-width:none}
.home .faq-q{padding-block:24px;font-size:1rem;line-height:1.5}
.home .faq-a{visibility:hidden}
.home .faq-item.open .faq-a{visibility:visible;max-height:1000px}
.home .cta{background:#1c1730;border:1px solid #a787ed30;border-radius:26px;padding:clamp(26px,5vw,64px);position:relative;overflow:hidden}
.home .cta-inner{gap:60px;align-items:start}
.home .cta h2{font-size:clamp(2rem,3.8vw,3.2rem);letter-spacing:-.045em;line-height:1.12}
.home .cta .eyebrow{color:#bfa5ff}
.home .cta-sub{font-size:.95rem;line-height:1.85;max-width:370px}
.home .cta-points{font-size:.8rem}
.home .contact{background:#ffffff05;padding:24px;border:1px solid #ffffff12;border-radius:18px}
.home .contact label{font-size:.76rem;opacity:.88}
.home .contact input,.home .contact textarea{font-size:.87rem;background:#ffffff07;border-color:#ffffff30;border-radius:9px}
.home .contact input::placeholder,.home .contact textarea::placeholder{color:#d8d0e6;opacity:.65}
.home .contact .btn{width:100%;border-radius:9px}
.form-note{color:#d3c9e3;font-size:.73rem;line-height:1.6}
.form-note a{text-decoration:underline;text-underline-offset:3px}
.contact-direct{color:#d1bcff;font-size:.83rem}
.form-msg:empty{display:none}
.home footer{margin-top:0;padding:35px 0}
.home .footer-inner{font-size:.76rem;opacity:.8}
@media(min-width:1061px) and (max-width:1250px){.home .nav-links{gap:14px}.home .nav-actions{gap:6px}.home .nav-actions .btn{padding-inline:12px}.home .nav-inner{padding-inline:28px}}
@media(max-width:1060px){.home .hero h1{font-size:4.6rem}.home .hero-content{max-width:60%}.home .hero-sub{max-width:390px}.home .hero{min-height:640px}}
@media(max-width:860px){.home .hero{min-height:0}.home .hero-content{max-width:100%;padding:60px 0}.home .hero h1{font-size:clamp(3.4rem,10vw,5rem)}.home .hero-sub{max-width:490px}.home .hero-video{left:0;width:100%;opacity:.15}.hero-orbit{display:none}.home .hero-bg{opacity:1}.home .studio-label{margin-bottom:32px}.home .stepper{grid-template-columns:1fr;gap:20px}.home .cta-inner{gap:35px}.home .ref-card.has-shot{display:flex}.home .ref-card.has-shot .ref-shot{min-height:0}.home .ref-shot img{height:auto}.home .ref-card.has-shot .ref-head{padding-top:28px}.home section:not(.hero):not(.trust){padding-block:68px}.home .trust-item + .trust-item{padding-left:0;border:0}}
@media(max-width:600px){.home .hero-content{padding:45px 0 42px}.home .hero h1{font-size:clamp(3.25rem,12vw,4.5rem)}.home .hero-sub{font-size:.94rem}.home .hero-actions{display:grid;grid-template-columns:1fr;width:100%}.home .hero-actions .btn{justify-content:center}.home .scroll-hint{margin-top:28px}.home .card{padding:25px}.home .card::after{right:25px;top:25px}.home .trust-inner{gap:15px}.home .pillar{padding:8px 22px}.home .pillar-num{margin-bottom:18px}.home .pillars{gap:32px}.home .step-panel{padding:25px;min-height:0}.home .cta{padding:26px 20px}.home .contact{padding:0;border:0;background:none}.home .section-head{margin-bottom:30px}.home .ref-card.has-shot>:not(.ref-shot){padding-inline:24px}.home .ref-head h3{font-size:1.3rem}.home .studio-label{font-size:.6rem}.home .nav-inner{min-height:72px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.hero-wrap{translate:none!important;opacity:1!important}}
@media print{.home .hero{min-height:0}.home .hero-bg,.hero-orbit{display:none}.reveal{opacity:1!important;transform:none!important}.home section:not(.hero){padding-block:25px}}

.faq-search{margin:30px 0;max-width:640px}.faq-search label{display:block;font-size:.8rem;font-weight:600;margin-bottom:8px}.faq-search input{width:100%;padding:15px 17px;border:1px solid var(--color-line);border-radius:12px;color:var(--color-text);background:var(--card-bg);font:inherit}.faq-search p{font-size:.8rem;margin-top:8px}.faq-a{visibility:hidden}.faq-item.open .faq-a{visibility:visible;max-height:1200px}.static-faq{padding:20px 0;border-bottom:1px solid var(--color-line)}.static-faq summary{cursor:pointer;font-weight:600}.static-faq p{margin-top:12px}

/* Final responsive and keyboard polish. */
html{scroll-padding-top:100px;-webkit-text-size-adjust:100%}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #a98aff;outline-offset:4px}
:where(button,a,input,textarea,select){-webkit-tap-highlight-color:transparent}
:where(.contact-direct,.form-msg,.form-note,.reset-shell,.auth-card){overflow-wrap:anywhere}
:where(.sheet,.auth-card,.step-panel,.contact){min-width:0}
.sheet{overflow-y:auto;overscroll-behavior:contain;padding-bottom:max(24px,env(safe-area-inset-bottom))}
:where(.hamburger,.sheet-close,.theme-toggle,.password-peek){min-width:44px;min-height:44px}
:where(input[type=email]){text-transform:none}
.home .hero .fade-up{opacity:1;transform:none;animation:none}
.home .hero h1{text-wrap:balance}
.home .section-head h2,.home .cta h2{text-wrap:balance}
@media(max-width:600px){
  .home .hero h1{font-size:clamp(2.65rem,11.3vw,4.2rem);line-height:1.05;letter-spacing:-.05em}
  .home .contact input,.home .contact textarea,.auth-page input,.auth-page select,.faq-search input{font-size:16px}
  .home .footer-inner{gap:20px;line-height:1.8}
}
@media(max-height:500px) and (orientation:landscape){.sheet{padding-top:16px}.sheet-links a{padding-block:7px}.sheet-head{margin-bottom:12px}}
/* Document pages share the same comfortable mobile gutters as the portal. */
body:not(.home) .wrap.nav-inner,body:not(.home) main.wrap.doc{padding-inline:clamp(20px,4vw,32px)}
.faq-q svg{transform-origin:center}
.faq-item.open .faq-q svg{width:18px;height:18px;flex:0 0 18px;margin-inline:4px}
.faq-q span{min-width:0;overflow-wrap:anywhere}
