.tg-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0;padding:0;list-style:none;display:grid}@media (min-width:640px){.tg-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}}@media (min-width:1024px){.tg-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (min-width:1280px){.tg-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}.tg-tile{background:var(--pt-paper);color:var(--pt-ink);isolation:isolate;border-radius:8px;transition:transform .22s cubic-bezier(.16,1,.3,1),box-shadow .22s;position:relative;overflow:hidden;box-shadow:0 10px 24px -18px #3b2a2a8c}.tg-tile:hover,.tg-tile:focus-within{transform:translateY(-4px);box-shadow:0 22px 34px -20px #3b2a2a99}.tg-art{aspect-ratio:262/468;overflow:hidden;container-type:inline-size}.tg-art-inner{--tg-scale:tan(atan2(100cqw, 262px));width:262px;transform:scale(var(--tg-scale,1));transform-origin:0 0;pointer-events:none}.tg-art-inner .pt-cover{min-height:468px;padding-bottom:46px}.tg-badge{z-index:2;font-family:var(--font-sans);letter-spacing:.02em;border-radius:8px;padding:3px 10px;font-size:11px;font-weight:700;position:absolute;top:10px;right:10px}.tg-badge--new{background:var(--primary);color:var(--primary-foreground)}.tg-badge--premium{color:#f4d58a;background:#2b2140}.tg-badge--free{color:#fff;background:#166534}.tg-badge--soon{color:#3f3a36;background:#ffffffe6;box-shadow:0 0 0 1px #0000001a}.tg-info{z-index:1;color:#fff;font-family:var(--font-sans);background:linear-gradient(#0000,#140c10d9 62%);padding:44px 12px 12px;transition:opacity .2s,transform .2s;position:absolute;inset:auto 0 0}.tg-info h3{font-family:var(--font-sans);color:#fff;font-size:14px;font-weight:700;line-height:1.3}.tg-chips{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.tg-chips span{background:#ffffff2e;border-radius:5px;padding:2px 7px;font-size:11px}@media (hover:hover){.tg-info{opacity:0;transform:translateY(8px)}.tg-tile:hover .tg-info,.tg-tile:focus-within .tg-info{opacity:1;transform:none}}.tg-open{z-index:3;border-radius:inherit;cursor:pointer;position:absolute;inset:0}.tg-open:focus-visible{outline:3px solid var(--ring);outline-offset:-3px}.tg-dialog{border-radius:10px;grid-template-columns:minmax(0,1fr);gap:20px;max-height:calc(100dvh - 2rem);padding:16px;display:grid;overflow-y:auto}.tg-preview{background:var(--pt-paper);height:min(52dvh,30rem);color:var(--pt-ink);border-radius:8px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000f}.tg-preview iframe{border:0;width:100%;height:100%;display:block}.tg-sample{overscroll-behavior:contain;outline:none;height:100%;overflow-y:auto}.tg-sample:focus-visible{box-shadow:inset 0 0 0 3px var(--ring)}.tg-sample>*{zoom:1.3}.tg-detail{flex-direction:column;min-width:0;padding:4px 4px 0;display:flex}.tg-title{font-family:var(--font-sans);letter-spacing:-.025em;padding-right:2.5rem;font-size:clamp(1.5rem,3vw,2rem);font-weight:700;line-height:1.15}.tg-description{color:var(--muted-foreground);margin-top:8px;font-size:15px;line-height:1.55}.tg-detail-chips{flex-wrap:wrap;gap:6px;margin-top:14px;display:flex}.tg-detail-chips span{border:1px solid var(--border);border-radius:8px;padding:3px 11px;font-size:12px;font-weight:500}.tg-heading{font-family:var(--font-sans);margin-top:22px;font-size:15px;font-weight:700}.tg-features{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin-top:12px;font-size:13px;display:grid}.tg-features li{align-items:flex-start;gap:8px;line-height:1.4;display:flex}.tg-features svg{color:var(--primary);flex-shrink:0;margin-top:1px}.tg-foot{margin-top:auto;padding-top:24px}.tg-qr{align-items:center;gap:14px;display:flex}.tg-qr svg{width:104px;height:104px;box-shadow:0 0 0 1px var(--border);fill:#111;background:#fff;border-radius:6px;flex-shrink:0;padding:6px}.tg-qr p{max-width:13rem;color:var(--muted-foreground);font-size:13px;line-height:1.5}.tg-note{margin-top:16px;font-size:13px}.tg-note--quiet{color:var(--muted-foreground);margin-top:2px;font-size:12px}.tg-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.tg-button{border:1px solid var(--foreground);border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 16px;font-size:15px;font-weight:600;transition:background-color .15s,color .15s;display:inline-flex}.tg-button:hover{background:var(--foreground);color:var(--background)}.tg-button--primary{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.tg-button--primary:hover{background:color-mix(in oklab, var(--primary) 88%, #000);color:var(--primary-foreground)}.tg-button:focus-visible{outline:2px solid var(--ring);outline-offset:3px}.tg-soon{border:1px dashed var(--border);color:var(--muted-foreground);border-radius:8px;padding:14px 16px;font-size:13px;line-height:1.5}.tg-soon-title{color:var(--foreground);font-size:15px;font-weight:600}@media (min-width:860px){.tg-dialog{grid-template-columns:22rem minmax(0,1fr);gap:32px;padding:28px;overflow:visible}.tg-preview{height:min(100dvh - 7.5rem,42rem)}.tg-detail{padding:4px 0 0}}@media (max-width:420px){.tg-features{grid-template-columns:minmax(0,1fr)}.tg-qr svg{width:88px;height:88px}}@media (prefers-reduced-motion:reduce){.tg-tile,.tg-info,.tg-button{transition:none}.tg-tile:hover,.tg-tile:focus-within{transform:none}}
