@font-face{font-family:"Dela Gothic One";font-style:normal;font-weight:400;font-display:swap;src:url("./fonts/dela-logo.woff2") format("woff2");}
@font-face{font-family:"Zen Maru Gothic";font-style:normal;font-weight:500;font-display:swap;src:url("./fonts/zen-maru-500.woff2") format("woff2");}
@font-face{font-family:"Zen Maru Gothic";font-style:normal;font-weight:700;font-display:swap;src:url("./fonts/zen-maru-700.woff2") format("woff2");}
/* Amethyst UI with the original opalescent card; warm metal accents. */
:root,.dark {
  color-scheme:light;
  --background:#f2e9f8;--foreground:#38264a;--card:#fff6ff;--card-foreground:#38264a;
  --popover:#fff4fd;--popover-foreground:#38264a;
  --primary:#783ba8;--primary-foreground:#fff;--secondary:#e9d8f0;--secondary-foreground:#493254;
  --muted:#e6d4ee;--muted-foreground:#80638e;--accent:#eedbff;--accent-foreground:#582b7b;
  --border:#ad87ba;--input:#ad87ba;--ring:#994bbb;
  --font-geist-sans:'Zen Maru Gothic','Hiragino Maru Gothic ProN','Yu Gothic',sans-serif;
  --font-game-title:'Dela Gothic One','Yu Gothic',sans-serif;
}
body { background:#2f1944; color:#38264a; font-family:var(--font-geist-sans); font-weight:500; font-synthesis:none; }
body::before { background:none; }
.shell { max-width:1120px; background:#f3eafa; border:2px solid #dbc0e7; border-radius:12px; margin:20px auto; padding:0 28px 24px; box-shadow:0 0 0 3px #392044,0 0 0 5px #9b719f,0 15px 40px #0005; }
.topbar { background:#54236f; color:#fff; margin:0 -28px; padding:17px 28px; border-radius:9px 9px 0 0; border-bottom:3px solid #c8a371; }
.topbar::after { background:none; height:0; }
.brand { font:800 12px var(--font-geist-sans); letter-spacing:.08em; text-shadow:0 2px #321546; }
.free-badge { background:#fff3cf; color:#6b4380; border:2px solid #d2b572; border-radius:20px; padding:2px 12px; font-weight:800; }
.nav-row { padding-top:15px; padding-bottom:12px; border-bottom:1px solid #c4a0cc; gap:15px; }
.game-tabs { background:none!important; gap:8px!important; height:auto!important; }
.game-tabs [data-slot=tabs-trigger] { color:#715082; background:linear-gradient(#fff6ff,#ddc4e7)!important; border:1px solid #b797c2; border-radius:6px; padding:10px 16px; min-height:44px; font-weight:800; box-shadow:inset 0 1px #fff,0 2px #9771a8; }
.game-tabs [data-slot=tabs-trigger][data-active] { color:#fff!important; background:linear-gradient(#ae70d5,#683592)!important; border-color:#efcb96; box-shadow:0 0 0 1px #865487,inset 0 1px #ffe6ff,0 2px #704c7a; }
.game-tabs [data-active]::after { display:none; }
.count { color:inherit; font-weight:700; opacity:.9; }
.rules-link { color:#80568d; text-decoration:underline; text-underline-offset:3px; font-size:12px!important; }
.game-grid { padding:30px 0; gap:34px; align-items:center; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); }
.art-stage { background:radial-gradient(ellipse at 50% 45%,#8752b5 0,#52287d 50%,#291240 100%); border:4px double #f5d6a3; border-radius:12px; box-shadow:0 0 0 2px #865182,0 5px #a776ac; min-height:490px; padding:50px 35px 36px; }
.art-stage::before { background:conic-gradient(from 25deg at 8% 25%,#dca1ff14 0deg 35deg,transparent 35deg 105deg,#edd2ff12 105deg 140deg,transparent 140deg 240deg,#cca8ff12 240deg 285deg,transparent 285deg),conic-gradient(from 70deg at 90% 75%,transparent 0deg 110deg,#f8c8eb10 110deg 140deg,transparent 140deg 240deg,#e3bfff16 240deg 270deg,transparent 270deg); }
.art-stage::after { content:'名画も、お宝も。世界をめぐる召喚'; background:linear-gradient(#793b98,#512768); border-bottom:2px solid #dfb89e; color:#fff3dc; text-shadow:1px 2px #3d1757; font:800 14px var(--font-geist-sans); letter-spacing:.07em; padding:10px 8px; text-align:center; z-index:5; }
.art-stage>.art-globe { position:absolute; width:94%; height:94%; max-height:430px; left:3%; top:7%; z-index:0; filter:drop-shadow(0 0 15px #e4a4ff70); }
.art-globe { display:block; width:100%; aspect-ratio:1; object-fit:contain; }
.summon-ring,.ring-one,.ring-two { display:none; }
.light-rays { opacity:.18; animation-duration:50s; }
.stage-tag { color:#fff6c9; background:#3e175ecc; border:1px solid #d6acd6; border-radius:20px; padding:6px 12px; bottom:14px; font:800 11px var(--font-geist-sans); letter-spacing:.01em; z-index:4; max-width:94%; }
.stage-idle .mystery-card { position:absolute; bottom:58px; right:18px; z-index:2; width:158px; min-height:215px; padding:10px; border:5px double #fff4cc; border-radius:10px; color:#6c286b; background:conic-gradient(from 25deg at 70% 28%,#ffffff00 0deg 60deg,#ffffff45 60deg 100deg,#ffffff00 100deg 250deg,#ffffff38 250deg 300deg,#ffffff00 300deg),linear-gradient(140deg,#b9b5ff,#f6b2df 38%,#ecda9c 63%,#9ae5d6); box-shadow:0 0 0 2px #aa6c9f,0 10px 20px #2c083d80,0 0 28px #ffd1fc4a; animation:4s ease-in-out infinite float-card; }
.mystery-card>span { font:700 7px var(--font-geist-sans); letter-spacing:.06em; }
.mystery-card strong { font:900 18px var(--font-geist-sans); letter-spacing:.05em; color:#76216e; text-shadow:0 1px #fff9; }
.mystery-card div>span { font-size:8px; }
.stage-idle .card-sigil { width:76px; height:82px; }
.card-sigil { border-color:#ffffffaa; }
.card-sigil svg { color:#fcffff; filter:drop-shadow(0 0 4px #d532c3); width:52px; height:52px; }
.card-sigil span { font:900 46px var(--font-geist-sans)!important; color:#fff8df; text-shadow:0 3px #9c38a4; }
.stage-summoning .mystery-card { display:none; }
.stage-summoning .light-rays { background:repeating-conic-gradient(#0000 0deg 14deg,#f2dc8e26 14deg 17deg,#0000 17deg 30deg); opacity:.5; }
.summon-caption { z-index:3; background:#39144feb; border:2px solid #deb99c; border-radius:8px; padding:8px 12px; bottom:16px; gap:8px; color:#fff; }
.summon-caption button { color:#50305e; background:#fff0f8; border:1px solid #c69ac6; }
.particles i { box-shadow:0 0 6px #ffe779; background:#fff4a6; }
.eyebrow { color:#986180; font:900 13px var(--font-geist-sans); letter-spacing:.07em; }
.gacha-title { color:#67216e; font:400 clamp(34px,4.4vw,54px)/1.22 var(--font-game-title); letter-spacing:.015em; text-shadow:2px 2px #fff,-1px -1px #fff,0 4px #d3b0df; margin:15px 0 24px; }
.gacha-title span { color:transparent; background:linear-gradient(#622874 15%,#b14195 43%,#ec6fa9 47%,#75378f 80%); background-clip:text; -webkit-background-clip:text; filter:drop-shadow(2px 2px #fff); font-size:1.4em; text-shadow:none; }
.sub { color:#715d7e; font-size:14px; font-weight:500; letter-spacing:.025em; line-height:1.95; }
.fine { color:#84708e; font-size:11px; line-height:1.9; }
.primary-action { background:linear-gradient(#aa67d0 0,#8545b1 48%,#67248f 49%,#9855be 100%)!important; border:3px solid #edc29e!important; outline:1px solid #91617f; outline-offset:0; border-radius:10px!important; color:#fff0c8!important; text-shadow:1px 2px #542075,-1px -1px #542075; box-shadow:inset 0 2px #ffe0ff,inset 0 -3px #49166b,0 5px #795081,0 8px 14px #874b9730; padding:17px 20px!important; min-height:62px; font-weight:900!important; }
.primary-action:hover { filter:brightness(1.08); transform:translateY(-1px); }
.primary-action:active { transform:translateY(3px); box-shadow:inset 0 2px #ffe0ff,0 2px #795081; }
.summon-button { font-size:22px!important; font-family:var(--font-geist-sans); font-weight:700!important; letter-spacing:.025em; }
.summon-button>span { color:#753972; text-shadow:none; border:1px solid #ffe8a6; background:#fff0c7; border-radius:15px; padding:3px 10px; font-weight:900; }
.summon-button::after { animation-duration:7s; }
.rarity-pills { margin-top:20px; }
.rarity-pills>span { color:#536273; background:linear-gradient(#fff,#cad4dc); border:1px solid #929fa6; box-shadow:0 2px #8d7959; border-radius:3px; }
.rarity-pills>span:nth-child(2) { color:#805816; background:linear-gradient(#fff3bd,#e7b747); border-color:#a97c27; }
.rarity-pills>span:nth-child(3) { color:#763c7b; background:linear-gradient(115deg,#c6f1ff,#e8bff8,#fff0a7); border-color:#cda568; }
.rarity-pills p { color:#8c638f; font-size:11px; }
.art-peek { margin-top:20px; gap:12px; }
.art-peek>div { border:3px double #b984b1; background:#fff8ff; box-shadow:0 3px #c9a6d1; border-radius:5px; }
.art-peek>div:nth-child(2) { transform:none; }
.summoned-card { color:#3d2a48; background:#fff0fc; border:5px double #c5d1d9; border-radius:9px; box-shadow:0 15px 30px #250c3ca6; z-index:2; }
.summoned-card.rarity-SR { border-color:#f5cd69; box-shadow:0 0 0 2px #92651e,0 10px 30px #34154e; }
.summoned-card.rarity-SSR { border-color:#fff4aa; box-shadow:0 0 0 2px #ddaaee,0 0 0 4px #8fdbed,0 0 35px #fee8a7b3; }
.card-top { background:linear-gradient(#fff6ff,#edd7ed); border-color:#c4a0c6; padding:8px 12px; }
.card-top>span:last-child { font:800 10px var(--font-geist-sans); color:#987292; }
.rank-R { color:#73618c; text-shadow:1px 1px #fff; }
.rank-SR { color:#a77713; }
.art-image-wrap { background:#fff8ff; }
.card-caption strong { font-weight:900; color:#553462; }
.card-caption>span { color:#947797; }
.reveal-word { color:#ffec8e; text-shadow:3px 3px #471d65,0 0 15px #fff3ba; top:46px; right:12px; font-size:62px; }
.reveal-word.SSR { color:#fff0a7; text-shadow:3px 3px #df6bc7,-2px -2px #a7f5f4,0 0 25px #fff; font-size:80px; }
.panel-title { color:#6e3588; font:700 clamp(25px,3vw,34px)/1.5 var(--font-geist-sans); letter-spacing:.015em; }
.question-meta strong span { color:#977aa0; }
[data-slot=progress-track] { background:#d9bfe5!important; height:6px!important; }
[data-slot=progress-indicator] { background:linear-gradient(90deg,#994ac2,#eb97cb)!important; }
.quiz-title { color:#553461; font-size:23px; font-weight:900; line-height:1.65; }
.answer { color:#5e3e69; background:linear-gradient(#fff9ff,#eedbf3)!important; border:2px solid #b997c7!important; border-radius:7px!important; box-shadow:inset 0 1px #fff,0 2px #cfb3d9; min-height:54px; }
.answer:not(:disabled):hover { background:#fce9ff!important; border-color:#bd6dcb!important; }
.answer-letter { color:#814693; border-color:#d0b0d5; background:#fff8ff; font-weight:800; border-radius:4px; }
.answer.correct { color:#285d3b; background:#e0f1d3!important; border-color:#71a85a!important; }
.answer.incorrect { color:#8e3f28; background:#fce0d2!important; border-color:#d29777!important; }
.answer-feedback { color:#61446d; background:#fbeffc; border:2px solid #c9a3d2; border-radius:7px; padding:15px; }
.next-button { background:linear-gradient(#aa6dcc,#753496); border:2px solid #d4a9c2; border-radius:6px; color:#fff; font-weight:800; }
.result-score>span:first-child { color:#c78b1d; text-shadow:1px 2px #fff; font-weight:bold; }
.score-stars { color:#b4a887; }
.score-stars .earned { color:#d49d20; }
.origin-panel { display:flex; align-items:center; gap:12px; margin:20px 0 24px; padding:12px; color:#fff; background:linear-gradient(#663785,#3c1e57); border:3px double #ddbacf; border-radius:10px; box-shadow:0 3px #a576ad; }
.origin-panel>.art-globe { flex:0 0 124px; width:124px; height:124px; }
.origin-panel>div { flex:1; min-width:0; }
.origin-kicker { display:block; color:#e7d4f9; font-size:10px; font-weight:800; }
.origin-panel strong { display:block; color:#ffe48f; font-size:22px; font-weight:900; margin:3px 0; text-shadow:0 2px #321441; }
.origin-panel p { color:#e6d6ef; font-size:10px; line-height:1.6; margin:3px 0; }
.origin-panel a { display:inline-flex; align-items:center; min-height:30px; color:#fff2c5; font-size:10px; text-decoration:underline; text-underline-offset:3px; }
.text-link,.share-button { color:#874ca1; }
.section-heading h1,.section-heading h2 { color:#784094; font-weight:900; }
.section-heading>strong { color:#956591; }
.section-heading>strong span { color:#a485ac; }
.collection-card { color:#63456c; background:#fff4fe; border:3px double #bc9bca; border-radius:8px; box-shadow:0 3px #dabbe2; }
.collection-card.rarity-SR { border-color:#c4993d; }
.collection-card.rarity-SSR { border-color:#d39bcc; box-shadow:0 0 0 1px #86badb,0 3px #dabbe2; }
.collection-card>span { color:#9a7ba5; }
.collection-image { background:#fffbff; }
.locked-card { color:#af91bb; background:#eaddf1; border:2px dashed #c4a9d2; border-radius:8px; }
.empty-collection { color:#9876a3; background:#ebd7f1; border:1px solid #c9a3d2; border-radius:8px; }
.page-status { color:#93629b; }
.collection-pagination button { border:1px solid #c2a0cd; background:#fff3fd; color:#81568e; font-weight:800; }
.promo-section { border-color:#d2b4dd; }
.promo-card { background:#fff6ff; border:2px solid #c8a7d3; box-shadow:0 3px #ddc0e6; }
.promo-card p { color:#94779e; }
.promo-card span { color:#9159a3; }
.footer { color:#9b80a6; border-color:#d0b5d9; font-size:11px; }
.footer>div>span { color:#8d6c9a; }
.footer p { font-size:10px; }
.game-dialog { background:#fff0fb!important; border:4px double #bb95c0; border-radius:12px; color:#62436b; box-shadow:0 0 0 2px #805887,0 15px 45px #2c0d4080; }
.game-dialog [data-slot=dialog-title] { color:#7f4398; font-weight:900; }
.game-dialog [data-slot=dialog-description] { color:#917198; }
.game-dialog button { border-radius:7px; }
.game-dialog .origin-panel { margin:10px 0; }
.game-dialog .origin-panel p { font-size:10px; line-height:1.6; }
.odds-row { color:#87568f; background:#e8ccef; border:1px solid #c4a0cc; border-radius:6px; }
.detail-dialog>img { background:#fff8ff; }
.image-error { color:#8d6796; }
a:focus-visible,button:focus-visible { outline:3px solid #a24dc1; outline-offset:3px; }
.embed-mode { margin:0; border-radius:0; border:0; box-shadow:none; padding:0 18px 18px; }
.embed-mode .topbar { margin:0 -18px; border-radius:0; padding:12px 18px; }
.embed-mode .art-stage>.art-globe { max-height:320px; top:5%; }
.embed-mode .stage-idle .mystery-card { width:110px; min-height:145px; bottom:50px; right:12px; }
.embed-mode .stage-idle .card-sigil { width:60px; height:52px; }
.embed-mode .mystery-card strong { font-size:14px; }
.embed-mode .mystery-card div>span { display:none; }
@media(max-width:980px){.shell{margin:14px;padding:0 22px 22px}.topbar{margin:0 -22px;padding:15px 22px}.game-grid{gap:28px}.art-stage{padding:48px 22px 34px}.origin-panel>.art-globe{flex-basis:104px;width:104px;height:104px}}
@media(max-width:700px){
  .shell{margin:9px;padding:0 14px 18px;border-radius:10px}.topbar{margin:0 -14px;padding:13px 14px;border-radius:7px 7px 0 0}
  .brand{font-size:10px}.free-badge{font-size:10px;padding:2px 8px}.nav-row{gap:8px;flex-wrap:nowrap;padding:13px 0 11px}
  .game-tabs{gap:5px!important}.game-tabs [data-slot=tabs-trigger]{padding:8px 9px;gap:4px;font-size:12px}.count{font-size:10px}.rules-link{font-size:10px!important;padding:4px!important;max-width:90px}
  .game-grid{grid-template-columns:1fr;gap:25px;padding:20px 0 25px}.art-stage,.active-game .art-stage{min-height:330px;padding:49px 24px 34px}
  .art-stage::after{font-size:12px;padding:9px 6px}.art-stage>.art-globe{height:285px;width:285px;left:calc(50% - 142.5px);top:34px}
  .stage-idle .mystery-card{width:126px;min-height:174px;bottom:49px;right:15px;padding:7px}.stage-idle .card-sigil{height:65px;width:65px}
  .mystery-card strong{font-size:15px}.mystery-card div>span{font-size:7px}.card-sigil svg{width:43px;height:43px}.card-sigil span{font-size:38px!important}
  .stage-tag{font-size:9px;bottom:10px;padding:5px 10px}.game-controls{padding:0 3px}.eyebrow{font-size:11px}
  .gacha-title{font-size:38px;line-height:1.3;margin:11px 0 18px}.gacha-title span{display:inline-block;font-size:1.12em;margin:0 0 0 7px}
  .sub{font-size:13px;margin:13px 0}.fine{font-size:10px}.primary-action{min-height:60px;padding:15px 15px!important}.summon-button{font-size:20px!important}
  .rarity-pills{margin-top:17px}.rarity-pills p{font-size:10px}.panel-title{font-size:25px}.quiz-title{font-size:21px}.art-image-wrap{height:205px}
  .origin-panel{padding:8px;gap:8px}.origin-panel>.art-globe{width:110px;height:110px;flex-basis:110px}.origin-panel strong{font-size:21px}
  .summon-caption{padding:7px 9px;font-size:11px}.summon-caption button{font-size:10px}.reveal-word{font-size:52px;top:45px}.reveal-word.SSR{font-size:68px}
  .collection-grid{gap:13px}.collection-image{height:150px}.section-heading h1,.section-heading h2{font-size:24px}
  .game-dialog{padding:18px!important}.detail-dialog .origin-panel>.art-globe{width:90px;height:90px;flex-basis:90px}.detail-dialog .origin-panel strong{font-size:18px}
  .footer>div{gap:7px}.footer p{font-size:9px}.embed-mode .game-tabs [data-slot=tabs-trigger]{font-size:11px;padding:7px 6px}
  .embed-mode .art-stage{min-height:285px}.embed-mode .art-stage>.art-globe{width:250px;height:250px;left:calc(50% - 125px);top:28px}
}
@media(max-width:380px){
  .shell{padding:0 11px 15px}.topbar{margin:0 -11px;padding:12px 11px}.game-tabs [data-slot=tabs-trigger]{padding:7px 6px;font-size:11px}.game-tabs{gap:4px!important}.count{font-size:9px}.rules-link{font-size:9px!important;max-width:64px}
  .gacha-title{font-size:34px}.origin-panel>.art-globe{width:92px;height:92px;flex-basis:92px}.origin-panel strong{font-size:18px}
  .summon-button{font-size:17px!important;white-space:nowrap!important;padding:13px 10px!important;gap:6px!important}.summon-button>span{flex-shrink:0;padding:3px 7px;font-size:10px}
  .art-stage>.art-globe{width:250px;height:250px;left:calc(50% - 125px);top:48px}
}
@media(prefers-reduced-motion:reduce){*,:before,:after{animation:none!important;transition:none!important}.stage-idle .mystery-card{transform:rotate(-5deg)}}
