/* App page: scoped, mobile-first, no scripts or third-party assets. */
.nf-app-page{background:var(--color-bg);color:var(--color-text)}
.nf-app-shell{box-sizing:border-box;width:100%;max-width:1176px;margin-inline:auto;padding-inline:clamp(1.25rem,4vw,3rem);padding-block:clamp(2rem,5vw,4rem) clamp(3rem,6vw,5.5rem)}
.nf-app-hero{position:relative;isolation:isolate;overflow:hidden;text-align:center;padding:clamp(2rem,6vw,4.5rem) clamp(1.25rem,5vw,3.25rem);border:1px solid var(--color-border);border-radius:var(--radius-2xl,1.5rem);background:radial-gradient(ellipse at 50% -10%,var(--color-primary-subtle),transparent 62%),var(--color-surface)}
.nf-app-icon{display:block;width:92px;height:92px;object-fit:cover;margin:0 auto var(--space-5);border-radius:22px;border:1px solid var(--color-border-gold);box-shadow:0 10px 35px rgba(0,0,0,.3)}
.nf-app-eyebrow{margin:0;color:var(--color-text-gold);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-widest);line-height:var(--leading-normal)}
.nf-app-hero h1{max-width:760px;margin:var(--space-3) auto var(--space-4);font-family:var(--font-display);font-size:clamp(2.25rem,6vw,4rem);font-weight:var(--weight-bold);line-height:1.09;letter-spacing:var(--tracking-tight);color:var(--color-text)}
.nf-app-hero__lead{max-width:610px;margin:0 auto;color:var(--color-text-secondary);font-size:clamp(1rem,2vw,1.125rem);line-height:var(--leading-relaxed)}
.nf-app-hero__actions{display:flex;flex-direction:column;align-items:center;gap:var(--space-4);margin-top:var(--space-7)}
.nf-app-page .nf-app-primary{width:100%;max-width:290px;min-height:50px;font-size:var(--text-base);text-decoration:none}
.nf-app-primary svg{width:1.1em;height:1.1em}
.nf-app-text-link{display:inline-flex;gap:.45em;align-items:center;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:var(--weight-semibold);text-decoration:none}
.nf-app-text-link:hover{color:var(--color-text)}
.nf-app-page a:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:4px}
.nf-app-hero__note{margin:var(--space-6) 0 0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal)}
.nf-app-install{padding-top:clamp(3rem,7vw,5rem);scroll-margin-top:100px}
.nf-app-section-heading{text-align:center;margin:0 auto var(--space-8)}
.nf-app-section-heading h2{margin:var(--space-2) 0 var(--space-3);font-family:var(--font-display);font-size:clamp(1.85rem,4vw,2.75rem);line-height:var(--leading-tight);letter-spacing:var(--tracking-snug);color:var(--color-text)}
.nf-app-section-heading>p:last-child{margin:0;color:var(--color-text-secondary);line-height:var(--leading-relaxed)}
.nf-app-device-grid{display:grid;grid-template-columns:1fr;gap:var(--space-5)}
.nf-app-device{min-width:0;padding:clamp(1.35rem,3.5vw,2rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl,1.25rem)}
.nf-app-device__header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-6)}
.nf-app-device__symbol,.nf-app-info__icon{display:grid;place-items:center;flex:none;width:48px;height:48px;background:var(--color-primary-subtle);border:1px solid var(--color-border-gold);border-radius:var(--radius-md,.75rem);color:var(--color-text-gold)}
.nf-app-device__symbol svg,.nf-app-info__icon svg{width:24px;height:24px}
.nf-app-device__eyebrow{margin:0 0 var(--space-1);font-size:var(--text-xs);font-weight:var(--weight-bold);letter-spacing:var(--tracking-wide);color:var(--color-text-muted)}
.nf-app-device h3{margin:0;font-family:var(--font-display);font-size:var(--text-xl);line-height:var(--leading-tight);color:var(--color-text)}
.nf-app-steps{list-style:none;counter-reset:none;display:grid;gap:var(--space-5);margin:0;padding:0}
.nf-app-steps li{display:flex;align-items:flex-start;gap:var(--space-4);color:var(--color-text-secondary);font-size:var(--text-base);line-height:var(--leading-relaxed)}
.nf-app-step-num{display:grid;place-items:center;flex:none;width:28px;height:28px;margin-top:1px;background:var(--color-surface-2);border:1px solid var(--color-border-strong);border-radius:50%;color:var(--color-text);font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:1}
.nf-app-steps strong{color:var(--color-text);font-weight:var(--weight-bold)}
.nf-app-steps a,.nf-app-support a{color:var(--color-text-gold);text-underline-offset:3px}
.nf-app-steps a:hover,.nf-app-support a:hover{color:var(--color-text)}
.nf-app-install-tip{display:flex;align-items:flex-start;gap:var(--space-3);max-width:790px;margin:var(--space-6) auto 0;color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-relaxed)}
.nf-app-install-tip>svg{flex:none;width:18px;height:18px;margin-top:3px;color:var(--color-text-gold)}
.nf-app-bottom{display:grid;gap:var(--space-5);margin-top:clamp(3rem,7vw,5rem);padding-top:clamp(2.5rem,5vw,3.5rem);border-top:1px solid var(--color-border)}
.nf-app-info,.nf-app-support{padding:clamp(1.35rem,3vw,2rem);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl,1.25rem)}
.nf-app-info{display:flex;align-items:flex-start;gap:var(--space-4)}
.nf-app-info h2,.nf-app-support h2{margin:0 0 var(--space-2);font-family:var(--font-display);font-size:var(--text-lg);line-height:var(--leading-tight);color:var(--color-text)}
.nf-app-info p,.nf-app-support p{margin:0;color:var(--color-text-secondary);font-size:var(--text-sm);line-height:var(--leading-relaxed)}
.nf-app-info small{display:block;margin-top:var(--space-3);color:var(--color-text-muted);font-size:var(--text-sm)}
.nf-app-support a{display:inline-flex;align-items:center;gap:.35rem;margin-top:var(--space-4);font-size:var(--text-sm);font-weight:var(--weight-bold)}
@media(min-width:690px){.nf-app-device-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nf-app-bottom{grid-template-columns:1fr 1fr}.nf-app-hero__actions{flex-direction:row;justify-content:center;gap:var(--space-6)}.nf-app-page .nf-app-primary{width:auto;padding-inline:var(--space-7)}}
@media(max-width:390px){.nf-app-info{display:block}.nf-app-info__icon{margin-bottom:var(--space-4)}.nf-app-device__header{gap:var(--space-3)}}
@media(prefers-reduced-motion:reduce){.nf-app-page .nf-btn:hover{transform:none}}
