:root{--color-yellow: #ffd84d;--color-yellow-deep: #ffa53a;--color-ink: #1a1f3c;--color-ink-2: #232a4d;--color-ink-3: #2e3760;--color-cream: #faf6ee;--color-surface: #ffffff;--color-muted: #5c627a;--color-border: rgba(26, 31, 60, .08);--color-border-strong: rgba(26, 31, 60, .16);--on-dark: #eef0f7;--on-dark-muted: rgba(238, 240, 247, .58);--on-dark-border: rgba(238, 240, 247, .1);--on-dark-hover: rgba(238, 240, 247, .06);--color-success: #1f9d57;--color-danger: #d6453d;--gradient-spark: linear-gradient(135deg, #ffd84d 0%, #ffa53a 100%);--font-serif: "Fraunces", Georgia, "Times New Roman", serif;--font-sans: "Geist", -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: .375rem;--radius-md: .625rem;--radius-lg: 1rem;--radius-xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(26, 31, 60, .04);--shadow-md: 0 4px 12px rgba(26, 31, 60, .08);--shadow-lg: 0 12px 36px rgba(26, 31, 60, .12);--shadow-xl: 0 24px 60px rgba(26, 31, 60, .16);--sidebar-w: 264px;--content-max: 1180px;--ease-out: cubic-bezier(.16, 1, .3, 1);--duration-fast: .15s;--duration-base: .22s}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{text-size-adjust:100%}body{min-height:100vh;font-family:var(--font-sans);font-size:1rem;line-height:1.55;color:var(--color-ink);background:var(--color-cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}a{color:inherit;text-decoration:inherit}ul,ol{list-style:none}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;line-height:1.1;letter-spacing:-.02em;color:var(--color-ink)}::selection{background:var(--color-yellow);color:var(--color-ink)}.field{display:flex;flex-direction:column;gap:var(--space-2)}.field>label{font-size:.82rem;font-weight:600;color:var(--color-ink);letter-spacing:-.01em}.field>.hint{font-size:.8rem;color:var(--color-muted)}.input,.textarea,.select{width:100%;padding:.7rem .85rem;background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);transition:border-color var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out)}.input::placeholder,.textarea::placeholder{color:#5c627a8c}.input:focus,.textarea:focus,.select:focus{outline:none;border-color:var(--color-yellow-deep);box-shadow:0 0 0 3px #ffa53a2e}.textarea{resize:vertical;min-height:4.5rem}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%235c627a' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center;padding-right:2.5rem;cursor:pointer}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:.75rem 1.25rem;font-weight:600;border-radius:var(--radius-full);transition:transform var(--duration-fast) var(--ease-out),box-shadow var(--duration-fast) var(--ease-out),opacity var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--color-ink);color:var(--color-yellow);box-shadow:0 6px 16px #1a1f3c33}.btn-primary:not(:disabled):hover{box-shadow:0 10px 24px #1a1f3c47;transform:translateY(-1px)}.btn-ghost{background:transparent;color:var(--color-muted)}.file-input{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:.7rem .85rem;background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);color:var(--color-muted);font-size:.88rem;cursor:pointer;transition:border-color var(--duration-fast) var(--ease-out),background var(--duration-fast) var(--ease-out)}.file-input:hover{border-color:var(--color-yellow-deep);background:#ffd84d0a}.file-input input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.file-input.has-file{border-style:solid;border-color:var(--color-yellow-deep);color:var(--color-ink)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
