:root{--ink: #142018;--ink-soft: #3a4a40;--paper: #f3f1ea;--accent: #0f7a62;--accent-deep: #0a5a48;--line: rgba(20, 32, 24, .14);--glow-mist: rgba(15, 122, 98, .12);--font-display: "Fraunces", Georgia, serif;--font-body: "Sora", system-ui, sans-serif;--max: 68rem}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-height:100vh;font-family:var(--font-body);color:var(--ink);background:var(--paper);line-height:1.55}app-root{display:block}.atmosphere{position:fixed;inset:0;z-index:-1;background:radial-gradient(900px 480px at 12% -10%,var(--glow-mist),transparent 60%),radial-gradient(700px 420px at 90% 10%,rgba(20,32,24,.06),transparent 55%),linear-gradient(165deg,#f7f5ef,#ebe7db 48%,#e3efe9);background-attachment:fixed}.atmosphere:after{content:"";position:absolute;inset:0;opacity:.35;background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(180deg,rgba(0,0,0,.55),transparent 75%);animation:grid-drift 28s linear infinite}@keyframes grid-drift{0%{transform:translateY(0)}to{transform:translateY(48px)}}.site-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:var(--max);margin:0 auto;padding:1.25rem 1.5rem}.brand,.brand-mark{font-family:var(--font-display);font-weight:700;letter-spacing:-.03em;text-decoration:none;color:var(--ink)}.brand{font-size:1.35rem}.nav{display:flex;align-items:center;gap:1.25rem}.nav a,.nav-link{color:var(--ink-soft);text-decoration:none;font-size:.95rem;font-weight:500;background:none;border:0;padding:0;font-family:inherit;cursor:pointer}.nav a:hover,.nav-link:hover{color:var(--ink)}.nav-cta{color:var(--accent-deep)!important}.nav-user{color:var(--ink);font-size:.95rem;font-weight:600}.hero{max-width:var(--max);margin:0 auto;padding:4.5rem 1.5rem 2rem;animation:rise .9s ease both}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}.brand-mark{margin:0 0 1rem;font-size:clamp(2.6rem,8vw,5.2rem);line-height:.95}.hero h1{margin:0;max-width:18ch;font-family:var(--font-display);font-size:clamp(1.7rem,3.6vw,2.55rem);font-weight:500;line-height:1.2;letter-spacing:-.02em}.lede{margin:1.1rem 0 0;max-width:40rem;color:var(--ink-soft);font-size:1.08rem}.cta-row,.download-actions{display:flex;flex-wrap:wrap;gap:.85rem;margin-top:1.75rem}.btn{appearance:none;border:1px solid transparent;border-radius:4px;padding:.85rem 1.25rem;font:inherit;font-weight:600;font-size:.95rem;text-decoration:none;cursor:pointer;transition:transform .2s ease,background .2s ease,border-color .2s ease}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled.busy{cursor:wait}.btn.primary{background:var(--accent);color:#f7fffb}.btn.primary:hover:not(:disabled){background:var(--accent-deep)}.btn.ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn.ghost:hover{border-color:var(--ink-soft)}.hero-visual{margin-top:3.5rem;color:var(--accent);opacity:.85;animation:draw-in 1.4s ease .2s both}.wire{display:block;width:100%;height:clamp(120px,22vw,220px)}@keyframes draw-in{0%{opacity:0;transform:translateY(12px) scaleX(.98)}to{opacity:.85;transform:translateY(0) scaleX(1)}}.section{max-width:var(--max);margin:0 auto;padding:3.5rem 1.5rem;border-top:1px solid var(--line);animation:rise .8s ease both}.auth-page{border-top:none;padding-top:2.5rem}.section h2{margin:0;font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.3rem);font-weight:500;letter-spacing:-.02em}.section-copy{margin:.75rem 0 0;max-width:40rem;color:var(--ink-soft)}.shot-list{display:flex;flex-direction:column;gap:2.75rem;margin-top:2.25rem}.shot{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(16rem,.7fr);gap:1.5rem 2rem;align-items:center}.shot-open{display:block;width:100%;margin:0;padding:0;border:0;background:none;cursor:zoom-in}.shot-open img,.shot img{width:100%;height:auto;border:1px solid var(--line);border-radius:6px;background:#0f1419}.lightbox{position:fixed;inset:0;z-index:30;display:flex;align-items:center;justify-content:center;padding:1.5rem;background:#0c100ef0;cursor:zoom-out}.lightbox img{max-width:min(72rem,100%);max-height:calc(100vh - 3rem);width:auto;height:auto;border-radius:6px;box-shadow:0 18px 50px #00000059}.shot h3{margin:0;font-size:1.15rem;font-weight:600}.shot p{margin:.7rem 0 0;color:var(--ink-soft)}.shot p+p{margin-top:.75rem}.doc-block{margin-top:2rem;padding-top:.25rem}.doc-block h3{margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.doc-block p,.doc-list{margin:0;color:var(--ink-soft)}.doc-list{padding-left:1.2rem}.doc-list li+li{margin-top:.45rem}.code-block{margin:1rem 0 0;padding:1rem 1.1rem;overflow-x:auto;border:1px solid var(--line);border-radius:4px;background:#ffffff73;font-size:.86rem;line-height:1.45}code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}.register-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1.75rem;max-width:42rem}.register-form label{display:flex;flex-direction:column;gap:.4rem;font-size:.9rem;font-weight:500}.register-form label.full{grid-column:1 / -1}.register-form input,.register-form textarea{width:100%;padding:.75rem .85rem;border:1px solid var(--line);border-radius:4px;background:#ffffffa6;color:var(--ink);font:inherit}.register-form input:focus,.register-form textarea:focus{outline:2px solid rgba(15,122,98,.35);border-color:var(--accent)}.register-form .captcha{min-height:78px}.register-form .btn{grid-column:1 / -1;justify-self:start;margin-top:.35rem}.form-status{grid-column:1 / -1;min-height:1.4em;margin:0;color:var(--accent-deep);font-size:.95rem}.form-status.error{color:#8a2f2f}.auth-switch{margin:1.25rem 0 0;color:var(--ink-soft)}.auth-switch a{color:var(--accent-deep);font-weight:600}.site-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.75rem;max-width:var(--max);margin:0 auto;padding:2rem 1.5rem 3rem;border-top:1px solid var(--line);color:var(--ink-soft);font-size:.92rem}@media(max-width:720px){.nav{gap:.85rem}.nav a.nav-secondary{display:none}.hero{padding-top:2.5rem}.register-form,.shot{grid-template-columns:1fr}}
