:root{--bg: #fdf7fb;--surface: #ffffff;--surface-raised: #fdeff7;--border: #f0dcea;--border-strong: #b176a0;--text: #1e1430;--muted: #6b5b80;--accent: #d81b8c;--accent-strong: #7b2fd6;--accent-warm: #a06400;--danger: #d92b48;--success: #0a7d58;--gradient: linear-gradient(120deg, #d81b8c 0%, #a82bb8 55%, #7b2fd6 100%);--ring: 0 0 0 3px rgb(216 27 140 / .22);color-scheme:light}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;line-height:1.55}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(42rem 30rem at 12% -8%,rgb(255 79 176 / .13),transparent 65%),radial-gradient(38rem 28rem at 92% 8%,rgb(123 63 242 / .11),transparent 62%),radial-gradient(34rem 26rem at 78% 104%,rgb(255 197 49 / .13),transparent 60%)}.shell{position:relative;z-index:1;min-height:100vh;display:grid;place-items:center;padding:2rem 1rem}.card{position:relative;width:min(40rem,100%);background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:2rem;overflow:hidden;box-shadow:0 1px 2px #1e14300d,0 18px 40px -24px #7b2dd64d}.card:before{content:"";position:absolute;inset:0 0 auto;height:4px;background:var(--gradient)}.brand{display:flex;align-items:center;gap:.7rem;margin-bottom:1.25rem}.brand-name{font-size:1.05rem;font-weight:650;letter-spacing:-.01em;background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}h1{margin:0 0 .25rem;font-size:1.7rem;font-weight:680;letter-spacing:-.02em}h2{margin:0 0 .5rem;font-size:1.15rem;font-weight:650}h3{margin:0 0 .35rem;font-size:1rem;font-weight:650}.row{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.muted{color:var(--muted);margin:.25rem 0}.small{font-size:.85rem}.actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;margin:1.5rem 0 0}.actions.stacked{flex-direction:column;align-items:stretch}.divider{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0 0;color:var(--muted);font-size:.85rem}.divider:before,.divider:after{content:"";flex:1;border-top:1px solid var(--border)}.checkout-frame{margin-top:1.5rem;min-height:20rem;padding:.75rem}.work-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));gap:1rem;margin-top:1rem}.work{display:flex;flex-direction:column;gap:.3rem;color:inherit;text-decoration:none}.work img{width:100%;height:9rem;object-fit:contain;background:var(--surface-raised);border:1px solid var(--border);border-radius:10px}.work:hover img{border-color:var(--accent)}.work-title{font-size:.9rem;font-weight:550;line-height:1.3}.button{display:inline-flex;align-items:center;justify-content:center;padding:.62rem 1.15rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-raised);color:var(--text);font:inherit;font-size:.95rem;font-weight:550;cursor:pointer;text-decoration:none;transition:border-color .15s ease,transform .12s ease,box-shadow .15s ease}.button:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.button:focus-visible{outline:none;box-shadow:var(--ring)}.button:disabled{opacity:.5;cursor:not-allowed}.button.primary{background:var(--gradient);border-color:transparent;color:#fff;box-shadow:0 6px 16px -6px #d81b8c73}.button.primary:hover:not(:disabled){box-shadow:0 10px 22px -8px #d81b8c8c}.button.danger{background:var(--danger);border-color:transparent;color:#fff}.button.danger:hover:not(:disabled){box-shadow:0 8px 18px -8px #d92b488c}.danger-zone{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.danger-zone h2{color:var(--danger)}.button.ghost{background:transparent;border-color:transparent;color:var(--muted)}.button.ghost:hover:not(:disabled){color:var(--text)}.input{padding:.6rem .8rem;border-radius:10px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font:inherit;font-size:.95rem;width:7rem;letter-spacing:.15em}.input:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}.qr{display:block;margin:1.25rem 0;border-radius:12px;background:#fff;border:1px solid var(--border-strong);padding:.6rem;box-shadow:0 8px 22px -14px #7b2dd673}.banner{padding:.7rem .9rem;border-radius:10px;border:1px solid var(--border);background:var(--surface-raised);margin:1rem 0 0;font-size:.92rem}.banner.error,.card.error{border-color:var(--danger);color:var(--danger);background:#d92b4812}.badge{display:inline-block;margin:1rem 0 0;padding:.28rem .75rem;border-radius:999px;border:1px solid var(--border);font-size:.85rem;font-weight:550;color:var(--muted)}.badge.active,.badge.trialing{border-color:transparent;background:#0a7d581c;color:var(--success)}.badge.grace_period{border-color:transparent;background:#d92b481c;color:var(--danger)}.badge.canceling{border-color:transparent;background:#a064001f;color:var(--accent-warm)}.content{margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--border)}.spinner{width:1.6rem;height:1.6rem;margin:1.25rem 0;border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner{animation-duration:3s}.button:hover:not(:disabled){transform:none}}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--surface-raised);border:1px solid var(--border);padding:.15rem .4rem;border-radius:6px}.museum-list{list-style:none;margin:1.5rem 0 0;padding:0;display:flex;flex-direction:column;gap:.75rem}.museum{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:1rem;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.museum-detail{flex:1 1 16rem}.museum-detail h2{margin:0 0 .15rem;font-size:1.05rem}.museum-detail .badge{margin-top:.5rem}figure.work{margin:0}.button.small{padding:.35rem .7rem;font-size:.85rem}.shell.landing{place-items:start center;padding:2.5rem 1rem 4rem}.landing-inner{width:min(62rem,100%);display:flex;flex-direction:column;gap:2.75rem}.landing-inner .card{width:100%}.landing-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.landing-head .brand{margin-bottom:0}.hero{padding:2.75rem 2rem}.hero h1{font-size:clamp(1.9rem,1.1rem + 2.8vw,2.85rem);line-height:1.12;margin-bottom:.9rem;max-width:22ch}.gradient-text{background:var(--gradient);-webkit-background-clip:text;background-clip:text;color:transparent}.hero .lede{margin:0;font-size:1.08rem;color:var(--muted);max-width:46ch}.hero .actions.stacked,.hero .divider{max-width:22rem}.section-title{margin:0 0 1rem;font-size:1.3rem}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem}.tile{padding:1.35rem;border:1px solid var(--border);border-radius:14px;background:var(--surface)}.tile p{margin-bottom:0}.step-number{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;margin-bottom:.6rem;border-radius:50%;background:var(--gradient);color:#fff;font-size:.85rem;font-weight:650}.museum-detail h3{margin:0 0 .15rem;font-size:1.05rem}.landing-foot{padding-top:1.5rem;border-top:1px solid var(--border)}.consent-list{list-style:none;margin:1.25rem 0 0;padding:0;display:grid;gap:.75rem}.consent-item{display:flex;gap:.75rem;align-items:flex-start;padding:.9rem 1rem;border:1px solid rgba(15,23,42,.12);border-radius:10px;cursor:pointer}.consent-item:hover{border-color:#0f172a3d}.consent-item input{width:1.15rem;height:1.15rem;margin-top:.15rem;flex:none}.consent-item>span{display:grid;gap:.3rem}.legal-body section{margin-top:1.5rem}.legal-body h2{margin-bottom:.4rem}.legal-links a{color:inherit}.legal-notice{margin-top:.75rem}.legal-notice a{color:var(--accent)}
