:root{--cream: #f7efe8;--cream-2: #fbf6f1;--blush: #e8bfb0;--blush-2: #f2d7cc;--sage: #9cb195;--sage-2: #c4d1be;--ink: #2e2a28;--ink-2: #5e5650;--muted: #9a8f87;--line: #e6dccf;--danger: #c0545a;--go: #6a8862;--shadow-sm: 0 1px 2px rgba(46, 42, 40, .06);--shadow: 0 6px 24px rgba(46, 42, 40, .08);--shadow-lg: 0 20px 60px rgba(46, 42, 40, .14);--radius: 14px;--radius-lg: 22px;--font-serif: "Cormorant Garamond", "Georgia", serif;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:var(--cream);color:var(--ink);font-family:var(--font-sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3{font-family:var(--font-serif);font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:0}h1{font-size:clamp(2rem,5vw,3rem);line-height:1.05}h2{font-size:clamp(1.4rem,3vw,2rem)}h3{font-size:1.2rem}p{margin:0 0 .75rem;color:var(--ink-2)}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;border:0;border-radius:var(--radius);padding:.7rem 1.2rem;font-weight:500;background:var(--ink);color:var(--cream);box-shadow:var(--shadow-sm);transition:transform .08s ease,box-shadow .12s ease,opacity .12s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.4;cursor:not-allowed}button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);box-shadow:none}button.ghost:hover:not(:disabled){background:var(--cream-2)}button.danger{background:var(--danger);color:#fff}button.go{background:var(--go);color:#fff}button.blush{background:var(--blush);color:var(--ink)}input[type=text],input[type=email],input[type=number],input[type=datetime-local],input[type=date],input[type=time],select,textarea{width:100%;padding:.7rem .9rem;border:1px solid var(--line);border-radius:var(--radius);background:#fff;outline:none;transition:border-color .12s}input:focus,select:focus,textarea:focus{border-color:var(--blush)}label{display:block;font-size:.85rem;color:var(--ink-2);font-weight:500;margin-bottom:.3rem}label>span.hint{color:var(--muted);font-weight:400;margin-left:.4rem}.field{margin-bottom:1.1rem}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:.9rem}@media (max-width: 520px){.grid-2{grid-template-columns:1fr}}.page{min-height:100vh;display:flex;flex-direction:column}.container{width:100%;max-width:720px;margin:0 auto;padding:2rem 1.25rem}.card{background:#fff;border-radius:var(--radius-lg);padding:1.75rem;box-shadow:var(--shadow)}.muted{color:var(--muted)}.error{background:#fdecee;border:1px solid #f3c4c8;color:var(--danger);border-radius:var(--radius);padding:.7rem .9rem;margin-bottom:1rem}.success{background:#eaf1e7;border:1px solid #c8d9c2;color:var(--go);border-radius:var(--radius);padding:.7rem .9rem;margin-bottom:1rem}.row{display:flex;align-items:center;gap:.75rem}.row.between{justify-content:space-between}.spacer{flex:1}.hr{border:0;border-top:1px solid var(--line);margin:1.25rem 0}.pill{display:inline-block;background:var(--sage-2);color:#2f4a2a;padding:.15rem .6rem;border-radius:999px;font-size:.75rem;font-weight:500}.pill.blush{background:var(--blush-2);color:#6a3a2d}.pill.muted{background:var(--line);color:var(--ink-2)}a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}a:hover{color:var(--blush)}@keyframes fadeIn{0%{opacity:0;transform:scale(1.02)}to{opacity:1;transform:scale(1)}}@keyframes kb-zoom-in{0%{transform:scale(1)}to{transform:scale(1.22)}}@keyframes kb-zoom-out{0%{transform:scale(1.22)}to{transform:scale(1)}}@keyframes kb-pan-right{0%{transform:scale(1.3) translate(-10%)}to{transform:scale(1.3) translate(10%)}}@keyframes kb-pan-left{0%{transform:scale(1.3) translate(10%)}to{transform:scale(1.3) translate(-10%)}}@keyframes kb-drift-up{0%{transform:scale(1.22) translateY(8%)}to{transform:scale(1.28) translateY(-8%)}}@keyframes kb-drift-diag{0%{transform:scale(1.24) translate(-8%,8%)}to{transform:scale(1.3) translate(8%,-8%)}}@keyframes wall-fade-in{0%{opacity:0}to{opacity:1}}@keyframes wall-fade-out{0%{opacity:1}to{opacity:0}}
