/* Campaign Kit public base: reset, type, buttons, inputs, focus, toast. Tokens come from tokens.css. */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{background:var(--bg-canvas);-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden;overflow-x:clip}
body{font-family:var(--font-text);color:var(--text-primary);font-size:var(--type-callout-size);line-height:var(--type-callout-lh);letter-spacing:var(--type-callout-track);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-canvas);min-height:100vh;overflow-x:hidden;overflow-x:clip}
img,svg,canvas{display:block;max-width:100%}
button,input,textarea,select{font:inherit;color:inherit}
button{border:0;background:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:none;box-shadow:var(--focus-ring)}
::selection{background:color-mix(in srgb,var(--kit-accent) 22%,transparent)}
.skip{position:absolute;left:12px;top:-60px;z-index:var(--z-toast);background:var(--bg-inverse);color:var(--text-inverse);padding:10px 14px;border-radius:var(--radius-sm);font-weight:600;transition:top var(--dur-fast) var(--ease-standard)}
.skip:focus{top:12px}
.u-visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.u-num{font-family:var(--font-rounded);font-variant-numeric:tabular-nums}
[hidden]{display:none!important}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--tap-min);padding:0 20px;border-radius:var(--radius-pill);font-size:15px;font-weight:650;letter-spacing:-.01em;white-space:nowrap;transition:transform var(--dur-instant) var(--ease-press),background-color var(--dur-fast) var(--ease-standard),box-shadow var(--dur-fast) var(--ease-standard)}
.btn:active{transform:scale(var(--press-scale))}
.btn-sm{height:36px;padding:0 14px;font-size:14px}
.btn-lg{height:54px;padding:0 26px;font-size:17px}
.btn-block{display:flex;width:100%}
.btn-primary{background:var(--accent);color:var(--text-on-accent);box-shadow:0 8px 22px -10px color-mix(in srgb,var(--accent) 80%,transparent),inset 0 1px 0 rgba(255,255,255,.18)}
.btn-primary:hover{background:var(--accent-hover)}
.btn-kit{background:var(--kit-accent);color:var(--kit-on-accent);box-shadow:var(--shadow-glow)}
.btn-quiet{background:var(--bg-surface);color:var(--text-primary);box-shadow:var(--shadow-1)}
.btn-quiet:hover{box-shadow:var(--shadow-2)}
.btn-ink{background:var(--bg-inverse);color:var(--text-inverse)}
.btn-white{background:#fff;color:#1D1D1F;box-shadow:0 10px 30px -10px rgba(0,0,0,.35)}

/* Inputs */
.input{width:100%;min-height:var(--tap-min);padding:10px 14px;border-radius:var(--radius-md);border:0;background:var(--bg-surface);box-shadow:inset 0 0 0 1px var(--border-strong);font-size:16px;line-height:1.35;transition:box-shadow var(--dur-fast) var(--ease-standard)}
.input:focus{outline:none;box-shadow:inset 0 0 0 2px var(--kit-accent)}
.input::placeholder{color:var(--text-secondary)}

/* Entrance motion */
.rise{animation:rise var(--dur-slower) var(--ease-decelerate) both}
.rise.d1{animation-delay:calc(var(--stagger) * 1)}.rise.d2{animation-delay:calc(var(--stagger) * 2)}.rise.d3{animation-delay:calc(var(--stagger) * 3)}.rise.d4{animation-delay:calc(var(--stagger) * 4)}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion: reduce){.rise{animation:fade var(--dur-slow) linear both}}

/* Simple pages (404, unlock) */
.simple{background:var(--bg-canvas);background-image:var(--aurora-kit)}
.simple-main{min-height:100vh;display:grid;place-items:center;padding:24px var(--gutter-mobile)}
.simple-card{width:100%;max-width:420px;text-align:center;background:var(--material-thick-bg);-webkit-backdrop-filter:var(--material-blur);backdrop-filter:var(--material-blur);border-radius:var(--radius-xl);box-shadow:var(--shadow-3);padding:36px 28px 28px;animation:rise var(--dur-slower) var(--ease-decelerate) both}
.simple-card .blob{width:72px;height:72px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 30% 30%,var(--kit-glow-2),var(--kit-glow-1) 55%,var(--kit-accent));color:#fff;font:800 28px/1 var(--font-rounded);box-shadow:var(--shadow-glow)}
.simple-card h1{font-family:var(--font-display);font-size:26px;line-height:1.15;letter-spacing:-.025em;font-weight:700}
.simple-card p{margin-top:10px;color:var(--text-secondary);font-size:16px;line-height:1.45}
.simple-card .eyebrow{margin:0 0 6px;font-size:var(--type-overline-size);letter-spacing:var(--type-overline-track);text-transform:uppercase;font-weight:650}
.simple-card .btn{margin-top:22px}
.simple-stack{width:100%;max-width:420px;display:grid;justify-items:center;gap:22px}
.simple-brand{display:block;opacity:.95}
.simple-brand img{height:28px;width:auto}
.simple-card .blob span{display:grid;place-items:center}
.unlock-label{font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:-6px}
.unlock{margin-top:20px;display:grid;gap:12px;text-align:left}
.unlock .btn{margin-top:4px;width:100%}
.unlock .err{margin:0;color:var(--text-danger);font-size:14px;font-weight:500}
