:root{--toris-white: #ffffff;--toris-ink: #16202d;--toris-slate: #526174;--toris-line: #7b8796;--toris-paper: #f6f8fb;--toris-blue: #2070b0;--toris-red: #b42318;--toris-green: #17633f;--toris-font-ui: Pretendard, "Noto Sans KR", system-ui, sans-serif;--toris-font-mono: ui-monospace, SFMono-Regular, monospace;--toris-text-sm: .875rem;--toris-text-md: 1rem;--toris-text-lg: 1.25rem;--toris-radius-sm: .375rem;--toris-radius-md: .75rem;--toris-radius-lg: 1rem;--toris-duration-micro: .16s;--toris-duration-short: .22s;--toris-ease-standard: cubic-bezier(.2, 0, 0, 1);--toris-target: 44px;--toris-space-4: .25rem;--toris-space-8: .5rem;--toris-space-12: .75rem;--toris-space-16: 1rem;--toris-space-24: 1.5rem;--toris-space-32: 2rem;--toris-space-48: 3rem;--toris-space-64: 4rem;--toris-swatch-toris-background: #f6f8fb;--toris-swatch-toris-surface: #ffffff;--toris-swatch-toris-text: #16202d;--toris-swatch-toris-muted: #526174;--toris-swatch-toris-border: #7b8796;--toris-swatch-toris-accent: #2070b0;--toris-swatch-toris-on-accent: #ffffff;--toris-swatch-toris-focus: #2070b0;--toris-swatch-builder-background: #fbfaf6;--toris-swatch-builder-surface: #ffffff;--toris-swatch-builder-text: #1f2427;--toris-swatch-builder-muted: #626568;--toris-swatch-builder-border: #818078;--toris-swatch-builder-accent: #ff6d1f;--toris-swatch-builder-on-accent: #14100b;--toris-swatch-builder-focus: #9b3d10;--toris-swatch-fate-background: #0b0c18;--toris-swatch-fate-surface: #17182b;--toris-swatch-fate-text: #f2eef9;--toris-swatch-fate-muted: #c2b7d7;--toris-swatch-fate-border: #777087;--toris-swatch-fate-accent: #b9a0ed;--toris-swatch-fate-on-accent: #171025;--toris-swatch-fate-focus: #cbb9f3;--toris-swatch-fate-danger: #ffb4ab;--toris-swatch-fate-success: #89d6a8;--toris-swatch-novel-background: #090d16;--toris-swatch-novel-surface: #141b29;--toris-swatch-novel-text: #f0eadf;--toris-swatch-novel-muted: #b8bdc9;--toris-swatch-novel-border: #707b90;--toris-swatch-novel-accent: #94a9eb;--toris-swatch-novel-on-accent: #0b152f;--toris-swatch-novel-focus: #a8bcf6;--toris-swatch-novel-danger: #ffb4ab;--toris-swatch-novel-success: #89d6a8;--toris-swatch-game-background: #10141c;--toris-swatch-game-surface: #171e29;--toris-swatch-game-text: #eff3f8;--toris-swatch-game-muted: #aab5c5;--toris-swatch-game-border: #708198;--toris-swatch-game-accent: #6bd9d0;--toris-swatch-game-on-accent: #0b2729;--toris-swatch-game-focus: #6bd9d0;--toris-swatch-game-danger: #ffb4ab;--toris-swatch-game-success: #89d6a8;--toris-swatch-fake-background: #f4f1ea;--toris-swatch-fake-surface: #fffefa;--toris-swatch-fake-text: #101014;--toris-swatch-fake-muted: #62616a;--toris-swatch-fake-border: #858178;--toris-swatch-fake-accent: #006e7a;--toris-swatch-fake-on-accent: #ffffff;--toris-swatch-fake-focus: #006e7a;--toris-swatch-coin-background: #f7f7ef;--toris-swatch-coin-surface: #ffffff;--toris-swatch-coin-text: #183c2b;--toris-swatch-coin-muted: #5d6b60;--toris-swatch-coin-border: #7a887a;--toris-swatch-coin-accent: #b7e675;--toris-swatch-coin-on-accent: #183c2b;--toris-swatch-coin-focus: #3b8019;--toris-swatch-ads-background: #ffffff;--toris-swatch-ads-surface: #ffffff;--toris-swatch-ads-text: #20201f;--toris-swatch-ads-muted: #65655e;--toris-swatch-ads-border: #85857b;--toris-swatch-ads-accent: #b93b20;--toris-swatch-ads-on-accent: #ffffff;--toris-swatch-ads-focus: #b93b20}:root,[data-product]{--toris-color-background: var(--toris-paper);--toris-color-surface: var(--toris-white);--toris-color-text: var(--toris-ink);--toris-color-muted: var(--toris-slate);--toris-color-border: var(--toris-line);--toris-color-accent: var(--toris-blue);--toris-color-on-accent: var(--toris-white);--toris-color-focus: var(--toris-blue);--toris-color-danger: var(--toris-red);--toris-color-success: var(--toris-green);--toris-control-height: var(--toris-target);--toris-content-gap: var(--toris-space-16);--toris-button-background: var(--toris-color-accent);--toris-button-text: var(--toris-color-on-accent);--toris-button-radius: var(--toris-radius-sm);--toris-input-background: var(--toris-color-surface);--toris-input-border: var(--toris-color-border);--toris-field-gap: var(--toris-space-8);--toris-dialog-background: var(--toris-color-surface);--toris-dialog-radius: var(--toris-radius-lg)}[data-product=toris]{--toris-color-background: var(--toris-swatch-toris-background);--toris-color-surface: var(--toris-swatch-toris-surface);--toris-color-text: var(--toris-swatch-toris-text);--toris-color-muted: var(--toris-swatch-toris-muted);--toris-color-border: var(--toris-swatch-toris-border);--toris-color-accent: var(--toris-swatch-toris-accent);--toris-color-on-accent: var(--toris-swatch-toris-on-accent);--toris-color-focus: var(--toris-swatch-toris-focus)}[data-product=builder]{--toris-color-background: var(--toris-swatch-builder-background);--toris-color-surface: var(--toris-swatch-builder-surface);--toris-color-text: var(--toris-swatch-builder-text);--toris-color-muted: var(--toris-swatch-builder-muted);--toris-color-border: var(--toris-swatch-builder-border);--toris-color-accent: var(--toris-swatch-builder-accent);--toris-color-on-accent: var(--toris-swatch-builder-on-accent);--toris-color-focus: var(--toris-swatch-builder-focus)}[data-product=fate]{--toris-color-background: var(--toris-swatch-fate-background);--toris-color-surface: var(--toris-swatch-fate-surface);--toris-color-text: var(--toris-swatch-fate-text);--toris-color-muted: var(--toris-swatch-fate-muted);--toris-color-border: var(--toris-swatch-fate-border);--toris-color-accent: var(--toris-swatch-fate-accent);--toris-color-on-accent: var(--toris-swatch-fate-on-accent);--toris-color-focus: var(--toris-swatch-fate-focus);--toris-color-danger: var(--toris-swatch-fate-danger);--toris-color-success: var(--toris-swatch-fate-success)}[data-product=novel]{--toris-color-background: var(--toris-swatch-novel-background);--toris-color-surface: var(--toris-swatch-novel-surface);--toris-color-text: var(--toris-swatch-novel-text);--toris-color-muted: var(--toris-swatch-novel-muted);--toris-color-border: var(--toris-swatch-novel-border);--toris-color-accent: var(--toris-swatch-novel-accent);--toris-color-on-accent: var(--toris-swatch-novel-on-accent);--toris-color-focus: var(--toris-swatch-novel-focus);--toris-color-danger: var(--toris-swatch-novel-danger);--toris-color-success: var(--toris-swatch-novel-success)}[data-product=game]{--toris-color-background: var(--toris-swatch-game-background);--toris-color-surface: var(--toris-swatch-game-surface);--toris-color-text: var(--toris-swatch-game-text);--toris-color-muted: var(--toris-swatch-game-muted);--toris-color-border: var(--toris-swatch-game-border);--toris-color-accent: var(--toris-swatch-game-accent);--toris-color-on-accent: var(--toris-swatch-game-on-accent);--toris-color-focus: var(--toris-swatch-game-focus);--toris-color-danger: var(--toris-swatch-game-danger);--toris-color-success: var(--toris-swatch-game-success)}[data-product=fake]{--toris-color-background: var(--toris-swatch-fake-background);--toris-color-surface: var(--toris-swatch-fake-surface);--toris-color-text: var(--toris-swatch-fake-text);--toris-color-muted: var(--toris-swatch-fake-muted);--toris-color-border: var(--toris-swatch-fake-border);--toris-color-accent: var(--toris-swatch-fake-accent);--toris-color-on-accent: var(--toris-swatch-fake-on-accent);--toris-color-focus: var(--toris-swatch-fake-focus)}[data-product=coin]{--toris-color-background: var(--toris-swatch-coin-background);--toris-color-surface: var(--toris-swatch-coin-surface);--toris-color-text: var(--toris-swatch-coin-text);--toris-color-muted: var(--toris-swatch-coin-muted);--toris-color-border: var(--toris-swatch-coin-border);--toris-color-accent: var(--toris-swatch-coin-accent);--toris-color-on-accent: var(--toris-swatch-coin-on-accent);--toris-color-focus: var(--toris-swatch-coin-focus)}[data-product=ads]{--toris-color-background: var(--toris-swatch-ads-background);--toris-color-surface: var(--toris-swatch-ads-surface);--toris-color-text: var(--toris-swatch-ads-text);--toris-color-muted: var(--toris-swatch-ads-muted);--toris-color-border: var(--toris-swatch-ads-border);--toris-color-accent: var(--toris-swatch-ads-accent);--toris-color-on-accent: var(--toris-swatch-ads-on-accent);--toris-color-focus: var(--toris-swatch-ads-focus)}@layer toris-foundation{:where([data-product]) :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--toris-color-focus);outline-offset:3px}:where([data-product]) :where(button,[role=button]){touch-action:manipulation}}.toris-button,.toris-input,.toris-field,.toris-alert,.toris-dialog,.toris-loading,.toris-empty{box-sizing:border-box;font-family:var(--toris-font-ui);font-size:var(--toris-text-md);line-height:1.6}.toris-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--toris-space-8);min-block-size:var(--toris-control-height);min-inline-size:var(--toris-target);padding:var(--toris-space-8) var(--toris-space-16);border:1px solid transparent;border-radius:var(--toris-button-radius);background:var(--toris-button-background);color:var(--toris-button-text);font-weight:650;cursor:pointer;text-decoration:none;transition:opacity var(--toris-duration-micro),transform var(--toris-duration-micro)}.toris-button[data-variant=secondary]{background:var(--toris-color-surface);color:var(--toris-color-text);border-color:var(--toris-color-border)}.toris-button:disabled{opacity:.55;cursor:not-allowed}@media(hover:hover){.toris-button:hover:not(:disabled){transform:translateY(-1px)}}.toris-button:active:not(:disabled){transform:none}.toris-button:focus-visible,.toris-input:focus-visible,.toris-dialog :focus-visible,.toris-disclosure>summary:focus-visible{outline:3px solid var(--toris-color-focus);outline-offset:3px}.toris-input{display:block;inline-size:100%;min-block-size:var(--toris-control-height);padding:var(--toris-space-8) var(--toris-space-12);background:var(--toris-input-background);color:var(--toris-color-text);border:1px solid var(--toris-input-border);border-radius:var(--toris-radius-sm)}.toris-input::placeholder{color:var(--toris-color-muted);opacity:1}.toris-input[aria-invalid=true]{border-color:var(--toris-color-danger)}.toris-input:disabled{opacity:.6;cursor:not-allowed}textarea.toris-input{min-block-size:8rem;resize:vertical}.toris-button[hidden]{display:none}.toris-button[aria-pressed=true]{outline:2px solid var(--toris-color-focus);outline-offset:2px}.toris-field :where(input,textarea,select){min-inline-size:0}.toris-dialog [data-modal-content]>h2{margin-block-start:0}.toris-field{display:grid;gap:var(--toris-field-gap);color:var(--toris-color-text)}.toris-field>label{font-weight:650}.toris-hint,.toris-error{margin:0;font-size:var(--toris-text-sm)}.toris-hint{color:var(--toris-color-muted)}.toris-error{color:var(--toris-color-danger)}.toris-alert,.toris-empty{padding:var(--toris-space-16);border:1px solid var(--toris-color-border);border-radius:var(--toris-radius-md);background:var(--toris-color-surface);color:var(--toris-color-text)}.toris-alert[data-tone=danger]{border-color:var(--toris-color-danger)}.toris-alert[data-tone=success]{border-color:var(--toris-color-success)}.toris-alert>strong,.toris-empty>h2{display:block;margin:0 0 var(--toris-space-8);font-size:var(--toris-text-md)}.toris-empty>p{margin:0 0 var(--toris-space-16);color:var(--toris-color-muted)}.toris-dialog{max-inline-size:min(32rem,calc(100vw - 2rem));inline-size:100%;max-block-size:calc(100dvh - 2rem);overflow:auto;padding:var(--toris-space-24);border:1px solid var(--toris-color-border);border-radius:var(--toris-dialog-radius);background:var(--toris-dialog-background);color:var(--toris-color-text);margin:auto}.toris-dialog::backdrop{background:#0000008c}.toris-dialog>h2{margin:0 0 var(--toris-space-16);font-size:var(--toris-text-lg)}.toris-dialog-close{margin-block-start:var(--toris-space-24)}.toris-loading{display:flex;align-items:center;gap:var(--toris-space-8);min-block-size:var(--toris-target);color:var(--toris-color-muted)}.toris-spinner{display:inline-block;inline-size:1em;block-size:1em;flex-shrink:0;border:2px solid currentColor;border-inline-end-color:transparent;border-radius:50%;animation:toris-spin .8s linear infinite}@keyframes toris-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){[data-product],[data-product] *,[data-product] *:before,[data-product] *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.toris-button:hover,.toris-button:active{transform:none!important}}:root{--bg-deep: #0b0c18;--bg-base: #0f1020;--surface: #191a2e;--surface-elevated: #23243d;--text-primary: #f7f2e8;--text-secondary: #bcb7c9;--text-tertiary: #8b86a0;--gold: #d7b46a;--violet: #8e7cc3;--amethyst: #9279cf;--magenta: #c13d89;--success: #79a98b;--danger: #d47777;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--scrim: rgba(6, 6, 14, .62);--seed: #7fa88c;--path: #7c9cc3;--bond: #c38fa6;--flame: #d79a6a;--shadow: #8e7cc3;--gate: #d7b46a;--xs: 4px;--sm: 8px;--md: 12px;--base: 16px;--lg: 24px;--xl: 32px;--xxl: 48px;--xxxl: 64px;--r-sm: 12px;--r-md: 16px;--r-lg: 20px;--r-xl: 28px;--r-pill: 999px;--easing: cubic-bezier(.16, 1, .3, 1);--font-body: "Noto Sans KR", "Apple SD Gothic Neo", system-ui, -apple-system, sans-serif;--font-display: "Gowun Batang", "Nanum Myeongjo", "Apple SD Gothic Neo", serif;--maxw: 560px;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}body{position:relative;isolation:isolate;overflow-x:hidden;background:transparent;color:var(--text-primary);font-family:var(--font-body);font-weight:400;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100dvh}h1,h2,h3,.display{font-family:var(--font-display);font-weight:700;letter-spacing:-.01em;margin:0}a{color:var(--gold);text-decoration:none;transition:color .2s var(--easing),opacity .2s var(--easing),text-decoration-color .2s var(--easing)}a:hover{text-decoration:underline;text-decoration-color:currentColor}:where(a,button,input,textarea,select,[role=button]):focus-visible{outline:2px solid var(--gold);outline-offset:3px}:where(button,[role=button]):disabled{cursor:not-allowed}::selection{background:#d7b46a47}.tabular{font-variant-numeric:tabular-nums}.fate-wave{position:fixed;inset:0;width:100%;height:100%;z-index:-1;display:block;pointer-events:none;background:radial-gradient(95% 70% at 12% 4%,rgba(146,121,207,.13),transparent 62%),radial-gradient(85% 65% at 91% 56%,rgba(193,61,137,.085),transparent 68%),radial-gradient(70% 52% at 34% 102%,rgba(215,180,106,.045),transparent 70%),#0b0c18}.app{min-height:100dvh;display:flex;flex-direction:column;align-items:center}.shell{width:100%;max-width:var(--maxw);padding:0 20px calc(env(safe-area-inset-bottom,0px) + 28px);display:flex;flex-direction:column;flex:1}@media(min-width:600px){.shell{padding-left:24px;padding-right:24px}}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:var(--sm);padding:14px 0 12px;background:linear-gradient(to bottom,#0b0c18b8,#0b0c1866 60%,#0b0c1800);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.topbar h2{font-size:18px;font-weight:700}.topbar .spacer{flex:1}.iconbtn{appearance:none;border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);width:40px;height:40px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;font-size:18px;transition:transform .18s var(--easing),border-color .2s var(--easing),color .2s var(--easing),background-color .2s var(--easing),opacity .18s var(--easing)}.iconbtn:hover{transform:translateY(-2px);border-color:var(--border-strong);color:var(--text-primary);background-color:var(--surface-elevated)}.iconbtn:active{transform:scale(.94)}.content{flex:1;display:flex;flex-direction:column;animation:fadeUp .32s var(--easing) both}.bottombar{position:sticky;bottom:0;padding:12px 0 calc(env(safe-area-inset-bottom,0px) + 12px);background:linear-gradient(transparent,var(--bg-deep) 40%)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.section-header{margin:0 0 var(--md)}.section-header .title{font-family:var(--font-display);font-weight:700;font-size:15px;color:var(--text-primary);letter-spacing:.02em}.section-header .subtitle{font-size:13px;color:var(--text-tertiary);margin-top:2px}.surface{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--base)}.btn{appearance:none;cursor:pointer;font-family:var(--font-body);font-weight:700;font-size:16px;border-radius:var(--r-pill);min-height:52px;padding:0 var(--lg);width:100%;display:inline-flex;align-items:center;justify-content:center;gap:var(--sm);border:1px solid transparent;transition:transform .18s var(--easing),color .2s var(--easing),background-color .22s var(--easing),border-color .22s var(--easing),opacity .18s var(--easing)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:linear-gradient(180deg,#e2c584,var(--gold));color:#201a10;box-shadow:0 8px 24px #d7b46a38}.btn-primary:hover:not(:disabled){transform:translateY(-2px)}.btn-primary:active:not(:disabled){transform:scale(.98)}.btn-primary.ready:not(:disabled){animation:readyPulse 1.7s ease-in-out infinite}@keyframes readyPulse{0%,to{box-shadow:0 8px 24px #d7b46a38}50%{box-shadow:0 10px 32px #d7b46a8c}}.btn-ghost{background:transparent;border-color:var(--border-strong);color:var(--text-primary)}.btn-ghost:hover:not(:disabled){background:#ffffff0a}.btn-ghost.danger{color:var(--danger);border-color:#d4777766}.btn-sm{min-height:44px;font-size:15px;width:auto}.chip{appearance:none;cursor:pointer;min-height:48px;padding:10px var(--base);border-radius:var(--r-pill);border:1px solid var(--border);background:var(--surface);color:var(--text-secondary);font-size:14px;font-weight:500;display:inline-flex;align-items:center;gap:6px;transition:border-color .2s var(--easing),color .2s var(--easing),background-color .2s var(--easing),transform .18s var(--easing),opacity .18s var(--easing)}.chip:hover{transform:translateY(-2px);border-color:var(--border-strong);color:var(--text-primary)}.chip:active{transform:scale(.96)}.chip[aria-pressed=true]{border-color:var(--gold);color:var(--gold);background:#d7b46a24;animation:chipPop .26s var(--easing)}@keyframes chipPop{0%{transform:scale(1)}45%{transform:scale(1.06)}to{transform:scale(1)}}.chip-row{display:flex;flex-wrap:wrap;gap:var(--sm)}.field{width:100%;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);color:var(--text-primary);font-family:var(--font-body);font-size:15px;padding:14px var(--base);resize:none;transition:border-color .2s var(--easing),background-color .2s var(--easing),color .2s var(--easing),opacity .18s var(--easing)}.field:focus{outline:none;border-color:var(--gold)}.field:focus-visible{outline:2px solid rgba(215,180,106,.55);outline-offset:2px}.field::placeholder{color:var(--text-tertiary)}.counter{font-size:12px;color:var(--text-tertiary);text-align:right;margin-top:4px}.toggle-row{display:flex;align-items:center;gap:var(--md)}.toggle-row .grow{flex:1}.switch{position:relative;width:46px;height:28px;flex:none;border-radius:var(--r-pill);border:none;cursor:pointer;background:var(--surface-elevated);transition:transform .18s var(--easing),background-color .2s var(--easing),opacity .18s var(--easing)}.switch:hover{transform:scale(1.04)}.switch:active{transform:scale(.94)}.switch[aria-checked=true]{background:var(--gold)}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .2s var(--easing)}.switch[aria-checked=true]:after{transform:translate(18px)}.muted{color:var(--text-secondary)}.tertiary{color:var(--text-tertiary)}.small{font-size:13px}.notice{border-radius:var(--r-md);padding:var(--base);font-size:14px;line-height:1.65}.notice-violet{background:#8e7cc31f;border:1px solid rgba(142,124,195,.4)}.domain-dot{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--md)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--md) var(--base)}.stat .num{font-family:var(--font-display);font-size:24px;font-weight:700;color:var(--gold)}.stat .lbl{font-size:12px;color:var(--text-tertiary);margin-top:2px}.card{position:relative;aspect-ratio:2 / 3;border-radius:var(--r-md);perspective:1000px;cursor:pointer;background:transparent;border:none;padding:0;width:100%;transition:transform .26s var(--easing),filter .26s var(--easing)}.card:active{transform:scale(.955)}@media(hover:hover){.card:not(.selected):hover{transform:translateY(-5px)}.card:not(.selected):hover .card-face{border-color:var(--border-strong)}}.card.selected{transform:translateY(-7px) scale(1.035);z-index:3}.card-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .62s var(--easing)}.card.flipped .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;border-radius:var(--r-md);backface-visibility:hidden;overflow:hidden;border:1px solid var(--border)}.card-back{background:linear-gradient(160deg,#1c1d34,#101127);display:flex;align-items:center;justify-content:center}.card-back .mark{width:44%;height:44%;border-radius:50%;border:1px solid rgba(215,180,106,.5);box-shadow:inset 0 0 24px #d7b46a2e;display:flex;align-items:center;justify-content:center;color:var(--gold);font-family:var(--font-display);font-size:clamp(18px,6vw,30px)}.card-front{transform:rotateY(180deg);background:#10112a}.card-front img{width:100%;height:100%;object-fit:cover;display:block}.card.selected .card-face{border-color:var(--gold);box-shadow:0 0 0 2px #d7b46a99,0 0 22px #d7b46a47,0 16px 34px #00000073}.card-back:after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 32%,rgba(215,180,106,.45) 50%,transparent 68%);transform:translate(-130%);opacity:0;pointer-events:none}.card.selected .card-back:after{animation:cardShimmer .64s var(--easing)}@keyframes cardShimmer{0%{transform:translate(-130%);opacity:0}28%{opacity:1}to{transform:translate(130%);opacity:0}}.card .badge{position:absolute;top:8px;left:8px;z-index:2;width:24px;height:24px;border-radius:50%;background:var(--gold);color:#201a10;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px #d7b46a80;animation:badgePop .34s var(--easing)}@keyframes badgePop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.28);opacity:1}to{transform:scale(1);opacity:1}}.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;background:#0e0f20;padding:12px;border-radius:var(--r-lg);border:1px solid var(--border)}.card-grid.reveal{grid-template-columns:repeat(var(--cols, 3),1fr);max-width:380px;margin:0 auto;gap:var(--md);padding:var(--base)}@media(max-width:380px){.card-grid{grid-template-columns:repeat(3,1fr)}}.ritual{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:var(--lg);min-height:60vh}.ritual-stack{position:relative;width:120px;height:180px}.ritual-stack .rc{position:absolute;inset:0;border-radius:var(--r-md);background:linear-gradient(160deg,#1c1d34,#101127);border:1px solid var(--border);animation:shuffle .9s var(--easing) infinite}.ritual-stack .rc:nth-child(2){animation-delay:.12s}.ritual-stack .rc:nth-child(3){animation-delay:.24s}@keyframes shuffle{0%,to{transform:translate(0) rotate(0)}30%{transform:translate(-16px,-6px) rotate(-6deg)}60%{transform:translate(16px,-4px) rotate(6deg)}}.result-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}.result-card .thumb{aspect-ratio:16 / 10;overflow:hidden;background:#10112a}.result-card .thumb img{width:100%;height:100%;object-fit:cover}.result-card .body{padding:var(--base)}.flow-tag{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:4px 10px;border-radius:var(--r-pill);border:1px solid var(--border);color:var(--text-secondary)}.list-tile{display:flex;gap:var(--md);align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-md);padding:var(--md);width:100%;text-align:left;cursor:pointer;color:inherit;transition:transform .2s var(--easing),border-color .2s var(--easing),background-color .2s var(--easing),color .2s var(--easing),opacity .18s var(--easing)}.list-tile:hover{transform:translateY(-2px);border-color:var(--border-strong);background-color:var(--surface-elevated)}.list-tile:active{transform:scale(.985)}.stars{display:flex;gap:6px}.star{background:none;border:none;cursor:pointer;font-size:26px;color:var(--text-tertiary);padding:2px;line-height:1;transition:transform .18s var(--easing),color .2s var(--easing),opacity .18s var(--easing)}.star:hover{transform:translateY(-2px) scale(1.08);color:var(--text-secondary)}.star:active{transform:scale(.9)}.star.on{color:var(--gold)}.divider{height:1px;background:var(--border);margin:var(--lg) 0}.stack>*+*{margin-top:var(--base)}.stack-sm>*+*{margin-top:var(--sm)}.stack-lg>*+*{margin-top:var(--lg)}.center{text-align:center}.hero{flex:1;display:flex;flex-direction:column;justify-content:center;gap:var(--lg);padding:var(--xl) 0}.hero h1{font-size:clamp(30px,8vw,40px);line-height:1.3}.lead{font-size:16px;color:var(--text-secondary);line-height:1.7}.spread-card{position:relative;text-align:left;cursor:pointer;color:inherit;width:100%;border:1px solid var(--border);background:var(--surface);border-radius:var(--r-lg);padding:var(--lg);overflow:hidden;transition:border-color .22s,transform .2s var(--easing),box-shadow .28s var(--easing)}.spread-card:before{content:"";position:absolute;inset:0;background:radial-gradient(130% 150% at 100% 0%,rgba(215,180,106,.12),transparent 55%);opacity:0;transition:opacity .28s var(--easing);pointer-events:none}@media(hover:hover){.spread-card:hover{transform:translateY(-4px);border-color:#d7b46a8c;box-shadow:0 18px 40px -22px #d7b46a80}.spread-card:hover:before{opacity:1}.spread-card:hover .go{transform:translate(5px);color:var(--gold)}}.spread-card:active{transform:translateY(-1px) scale(.988)}.spread-card .k{font-family:var(--font-display);font-size:20px;font-weight:700}.spread-card .d{color:var(--text-secondary);font-size:14px;margin-top:6px}.spread-card .go{position:absolute;top:var(--lg);right:var(--lg);font-size:20px;line-height:1;color:var(--text-tertiary);transition:transform .22s var(--easing),color .22s var(--easing)}.footer-links{display:flex;gap:var(--base);justify-content:center;flex-wrap:wrap;padding:var(--lg) 0;color:var(--text-tertiary);font-size:13px}.footer-links a{color:var(--text-tertiary)}.footer-links a:hover{color:var(--gold)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}:where(.iconbtn,.btn-primary,.chip,.switch,.list-tile,.star):is(:hover,:active){transform:none!important}}.reduce-motion *,.reduce-motion *:before,.reduce-motion *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.reduce-motion :where(.iconbtn,.btn-primary,.chip,.switch,.list-tile,.star):is(:hover,:active){transform:none!important}@media print{.fate-wave{display:none!important}}.doc{max-width:var(--maxw);margin:0 auto;padding:var(--xl) 20px calc(env(safe-area-inset-bottom,0px) + 40px)}.doc h1{font-size:28px;margin-bottom:var(--sm)}.doc h2{font-size:18px;margin:var(--xl) 0 var(--sm);color:var(--text-primary)}.doc p,.doc li{color:var(--text-secondary);line-height:1.75;font-size:15px}.doc .updated{color:var(--text-tertiary);font-size:13px}
