:root{--canvas: #ede7dd;--canvas-raised: #f6f2ea;--ink: #1f2a24;--ink-soft: #4a554e;--accent: #c08a28;--accent-deep: #9c6e1c;--sage: #6b7a5e;--line: #d8cfc0;--danger: #a3402f;--white: #fffdf9;--font-display: "Fraunces", serif;--font-body: "IBM Plex Sans", sans-serif;--radius-s: 4px;--radius-m: 10px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--canvas);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);font-weight:500;margin:0 0 .4em;color:var(--ink)}p{margin:0 0 1em;color:var(--ink-soft)}a{color:inherit}button{font-family:var(--font-body)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.page-loading{display:flex;align-items:center;justify-content:center;height:100vh;color:var(--ink-soft)}.brand{font-family:var(--font-display);font-size:1.4rem;letter-spacing:.01em;color:var(--ink)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.7rem 1.3rem;border-radius:var(--radius-s);border:1px solid transparent;font-size:.95rem;font-weight:500;cursor:pointer;text-decoration:none;transition:background-color .15s ease,border-color .15s ease}.btn--primary{background:var(--ink);color:var(--white)}.btn--primary:hover{background:#33413a}.btn--primary:disabled{opacity:.6;cursor:not-allowed}.btn--ghost{background:transparent;border-color:var(--line);color:var(--ink)}.btn--ghost:hover{border-color:var(--ink)}.btn--danger{color:var(--danger)}.btn--small{padding:.4rem .8rem;font-size:.85rem}.btn--google{background:var(--white);border:1px solid var(--line);color:var(--ink);box-shadow:0 1px #1f2a240d}.btn--google:hover{border-color:var(--ink-soft)}.landing{max-width:1120px;margin:0 auto;padding:0 2rem}.landing__nav{padding:2rem 0 1rem}.landing__hero{display:grid;grid-template-columns:1.1fr .9fr;gap:3rem;align-items:center;padding:3rem 0 5rem}.landing__copy h1{font-size:clamp(2rem,4vw,2.8rem);line-height:1.15;max-width:16ch}.landing__sub{max-width:46ch;font-size:1.05rem}.landing__note{margin-top:.75rem;font-size:.85rem;color:var(--ink-soft)}.landing__visual{display:flex;justify-content:center}.price-card{position:relative;width:300px}.price-card__canvas{width:100%;aspect-ratio:4 / 5;background:linear-gradient(155deg,#d9c9a3,#b98f52 45%,#7c5a34);border-radius:2px;box-shadow:0 18px 40px #1f2a242e;position:relative;overflow:hidden;transform:rotate(-2deg)}.price-card__brushstroke{position:absolute;top:12%;right:15%;bottom:12%;left:15%;border-radius:50% 45% 55% 50%/55% 50% 50% 45%;background:radial-gradient(circle at 35% 30%,rgba(255,245,225,.55),transparent 60%)}.price-card__string{position:absolute;top:-18px;right:46px;width:1px;height:40px;background:var(--ink-soft);transform:rotate(-2deg)}.price-card__tag{position:absolute;right:-28px;bottom:-34px;width:210px;background:var(--canvas-raised);border:1px solid var(--line);border-radius:var(--radius-m);padding:1rem 1.1rem;box-shadow:0 12px 24px #1f2a2429;transform:rotate(3deg)}.price-card__title{font-family:var(--font-display);font-size:.95rem;margin:0 0 .6rem;color:var(--ink)}.tag-line{display:flex;justify-content:space-between;font-size:.82rem;padding:.18rem 0;border-top:1px dashed var(--line)}.tag-line:first-of-type{border-top:none}.tag-line__label{color:var(--ink-soft)}.tag-line__value{font-weight:500}.tag-line__value--accent{color:var(--accent-deep)}.landing__how{padding:2rem 0 4rem;border-top:1px solid var(--line)}.how-steps{list-style:none;margin:1.5rem 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.how-steps li{display:flex;gap:1rem}.how-steps__index{font-family:var(--font-display);font-size:1.4rem;color:var(--accent-deep);flex-shrink:0}.how-steps h3{font-size:1.05rem;margin-bottom:.3rem}.landing__footer{border-top:1px solid var(--line);padding:1.5rem 0 2.5rem;font-size:.85rem}.dashboard{max-width:1120px;margin:0 auto;padding:0 2rem 4rem}.dashboard__header{display:flex;align-items:center;justify-content:space-between;padding:1.75rem 0;border-bottom:1px solid var(--line);margin-bottom:2rem}.dashboard__account{display:flex;align-items:center;gap:1rem}.dashboard__email{font-size:.9rem;color:var(--ink-soft)}.dashboard__toolbar{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:1.5rem;gap:1rem;flex-wrap:wrap}.dashboard__count{margin:0;font-size:.9rem}.dashboard__empty,.dashboard__empty-state{text-align:center;padding:4rem 1rem;color:var(--ink-soft)}.dashboard__empty-state{border:1px dashed var(--line);border-radius:var(--radius-m)}.banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1.1rem;border-radius:var(--radius-s);margin-bottom:1.25rem;font-size:.9rem}.banner--limit{background:#f5e9d2;border:1px solid #e2c98c;color:var(--accent-deep)}.banner--error{background:#f6e2dc;border:1px solid #e3b7a8;color:var(--danger)}.banner__dismiss{background:none;border:none;font-size:1.1rem;cursor:pointer;color:inherit;line-height:1}.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.5rem}.piece-card{background:var(--canvas-raised);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;display:flex;flex-direction:column}.piece-card__image{aspect-ratio:4 / 3;background:#e4dcc9}.piece-card__image img{width:100%;height:100%;object-fit:cover;display:block}.piece-card__image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;color:var(--ink-soft);font-size:.85rem}.piece-card__body{padding:1rem 1.1rem 1.1rem}.piece-card__name{font-size:1.05rem;margin-bottom:.2rem}.piece-card__meta{font-size:.82rem;margin-bottom:.9rem}.piece-card__prices{display:grid;gap:.3rem;margin:0 0 1rem}.piece-card__prices>div{display:flex;justify-content:space-between;font-size:.85rem}.piece-card__prices dt{color:var(--ink-soft)}.piece-card__prices dd{margin:0;font-weight:500}.piece-card__prices-accent{color:var(--accent-deep)}.piece-card__actions{display:flex;gap:.6rem}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1f2a2473;display:flex;align-items:flex-start;justify-content:center;padding:3rem 1rem;overflow-y:auto;z-index:50}.modal{background:var(--canvas-raised);border-radius:var(--radius-m);width:min(640px,100%);box-shadow:0 24px 60px #1f2a244d}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:1.3rem 1.6rem;border-bottom:1px solid var(--line)}.modal__close{background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--ink-soft);line-height:1}.card-form{padding:1.5rem 1.6rem 1.8rem;display:flex;flex-direction:column;gap:1.1rem}.card-form__image-drop{display:flex;align-items:center;justify-content:center;height:160px;border:1px dashed var(--line);border-radius:var(--radius-m);cursor:pointer;overflow:hidden;color:var(--ink-soft);font-size:.9rem;background:var(--canvas)}.card-form__image-drop img{width:100%;height:100%;object-fit:cover}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--ink-soft);flex:1}.field input,.field select{font-family:var(--font-body);font-size:.95rem;padding:.55rem .7rem;border:1px solid var(--line);border-radius:var(--radius-s);background:var(--white);color:var(--ink)}.field-row{display:flex;gap:1rem}.field-row--three .field{min-width:0}.field-group{border:1px solid var(--line);border-radius:var(--radius-m);padding:.9rem 1rem 1rem;margin:0}.field-group legend{padding:0 .4rem;font-size:.8rem;color:var(--ink-soft)}.card-form__error{color:var(--danger);font-size:.85rem;margin:0}.card-form__actions{display:flex;justify-content:flex-end;gap:.8rem;padding-top:.5rem;border-top:1px solid var(--line)}@media (max-width: 860px){.landing__hero{grid-template-columns:1fr;padding-bottom:3rem}.landing__visual{order:-1}.how-steps{grid-template-columns:1fr}}@media (max-width: 560px){.landing,.dashboard{padding-left:1.25rem;padding-right:1.25rem}.field-row,.field-row--three{flex-direction:column}.dashboard__header{flex-direction:column;align-items:flex-start;gap:.8rem}}
