:root{
  --bg:#fff8fa; --card:#fffdfd; --ink:#38272d; --muted:#7d6870; --line:#ecdde3;
  --red:#d23b52; --red2:#9f1730; --pink:#fff0f4; --purple:#7f59bd; --green:#788f73;
  --knife:#c81631; --skull:#8051b5; --doll:#df5d94; --flesh:#a7071e; --ruin:#798866;
  --shadow:0 24px 70px rgba(96,20,42,.16);
}
*{box-sizing:border-box}body{margin:0;min-height:100vh;font-family:"Hiragino Mincho ProN","Yu Mincho","Yu Gothic",Meiryo,serif;color:var(--ink);background:radial-gradient(circle at 20% 10%,#fff 0 16%,transparent 34%),radial-gradient(circle at 82% 20%,#ffecef 0 12%,transparent 34%),linear-gradient(135deg,#fff,#fff7fa 45%,#fffdfd);}
body:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(120deg,rgba(211,59,82,.055) 0 1px,transparent 1px),radial-gradient(circle,rgba(211,59,82,.08) 1px,transparent 1px);background-size:72px 72px,96px 96px;opacity:.9}.app{min-height:100vh;display:grid;place-items:center;padding:18px}.shell{position:relative;width:min(1180px,100%);min-height:720px;border:2px solid #e9b8c0;border-radius:34px;background:rgba(255,255,255,.72);box-shadow:var(--shadow);overflow:hidden}.shell:before,.shell:after{content:"";position:absolute;width:190px;height:190px;border:1px solid rgba(200,22,49,.18);border-radius:50%;pointer-events:none}.shell:before{left:-80px;top:-90px}.shell:after{right:-80px;bottom:-90px}.screen{display:none;min-height:720px}.screen.active{display:block}.hidden{display:none!important}.sound-toggle{position:absolute;right:22px;top:18px;z-index:20;border:1px solid #edc4ca;background:#fff;color:var(--red2);border-radius:999px;padding:9px 14px;font-weight:700;cursor:pointer}.title-screen{padding:54px 60px;display:none;grid-template-columns:1fr 420px;gap:34px;align-items:center}.title-screen.active{display:grid}.eyebrow{letter-spacing:.14em;text-transform:uppercase;color:var(--red2);font-weight:700;margin:0 0 10px;font-size:14px}h1{font-size:70px;line-height:1.08;margin:0 0 18px;color:var(--red2);letter-spacing:.05em;text-shadow:0 2px 0 #fff,0 8px 24px rgba(210,59,82,.12)}.lead{font-size:19px;line-height:1.9;color:var(--muted);max-width:680px}.notice{color:var(--muted);font-size:13px;line-height:1.7}.mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:26px 0 20px}.mode-card{border:1px solid var(--line);background:#fff;border-radius:18px;padding:16px 14px;text-align:left;color:var(--ink);cursor:pointer;transition:.18s;box-shadow:0 8px 22px rgba(74,25,37,.05)}.mode-card b{display:block;color:var(--red2);font-size:17px;margin-bottom:6px}.mode-card span{display:block;color:var(--muted);font-size:13px;line-height:1.5}.mode-card.selected{border-color:#db6b7b;background:var(--pink);transform:translateY(-1px)}.name-row{display:flex;gap:10px;flex-wrap:wrap}input{width:min(340px,100%);border:1px solid var(--line);border-radius:999px;background:#fff;padding:14px 18px;font-size:16px;color:var(--ink)}button{font-family:inherit}.primary,.secondary{border:0;border-radius:999px;padding:13px 20px;font-weight:800;cursor:pointer}.primary{color:#fff;background:linear-gradient(135deg,var(--red),var(--red2));box-shadow:0 14px 30px rgba(200,22,49,.22)}.secondary{color:var(--red2);background:#fff;border:1px solid #edc4ca}.gloria-stage{position:relative;display:grid;place-items:center}.gloria-stage:before{content:"";position:absolute;width:380px;height:560px;border-radius:44% 44% 28px 28px;background:linear-gradient(#fff7fb,#ffeef5);filter:blur(.1px);box-shadow:inset 0 0 0 1px #f1ccd2,0 18px 50px rgba(200,22,49,.12)}.gloria-img{position:relative;width:360px;max-height:590px;object-fit:contain;border-radius:30px}.gloria-name{position:absolute;bottom:26px;background:#fff;border:1px solid #eccbd1;border-radius:999px;color:var(--red2);padding:8px 18px;font-weight:700}.novel-screen{position:relative}.novel-screen.active{display:block}.novel-top{position:absolute;left:24px;right:24px;top:22px;display:flex;justify-content:space-between;z-index:5}.pill{border:1px solid #edc4ca;background:#fff;color:var(--red2);border-radius:999px;padding:8px 18px;font-weight:700;font-size:14px;white-space:nowrap;min-width:138px;text-align:center;box-sizing:border-box}.novel-visual{height:460px;display:grid;place-items:center;background:radial-gradient(circle at center,#fff 0 18%,#fff2f5 54%,transparent 80%)}.magic-orb{position:absolute;width:330px;height:330px;border-radius:50%;border:1px solid rgba(200,22,49,.16);box-shadow:inset 0 0 35px rgba(200,22,49,.06),0 0 55px rgba(200,22,49,.10)}.gloria-mini{position:relative;z-index:2;width:300px;height:420px;display:grid;place-items:center;overflow:hidden;border-radius:34px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}.gloria-mini img{width:100%;height:100%;object-fit:cover}.textbox{position:absolute;left:26px;right:26px;bottom:26px;background:rgba(255,255,255,.96);border:1px solid #e9c8cf;border-radius:28px;padding:20px 22px;box-shadow:0 22px 56px rgba(75,20,32,.14)}.speaker-row{display:flex;gap:10px;align-items:center;margin-bottom:10px}.speaker-row span:first-child{background:var(--red);color:#fff;border-radius:999px;padding:7px 14px;font-weight:800}.speaker-row span:last-child{color:var(--muted);font-size:14px}.novel-text{font-size:20px;line-height:1.9;margin:0;min-height:82px;white-space:pre-wrap}.choice-list{display:grid;gap:10px;margin-top:16px}.choice-list button{border:1px solid var(--line);background:#fff7f9;border-radius:18px;padding:14px 18px;text-align:left;color:var(--ink);font-weight:700;font-size:16px;line-height:1.6;cursor:pointer}.choice-list button:hover{background:#fff0f4;border-color:#de8090}.controls{display:flex;justify-content:flex-end;margin-top:16px}.result-screen.active{display:block}.result-layout{display:grid;grid-template-columns:430px 1fr;gap:24px;padding:34px}.result-main{background:#fff;border:1px solid var(--line);border-radius:28px;padding:24px;box-shadow:0 18px 48px rgba(75,20,32,.10)}h2{font-size:42px;line-height:1.15;color:var(--red2);margin:0 0 10px}.catch{font-size:18px;line-height:1.7;color:var(--red2);font-weight:800}.result-body{line-height:1.85;color:var(--muted)}.compat-box,.voice-box{border:1px solid #f0c9cf;border-radius:18px;background:#fff7f9;padding:13px 14px;line-height:1.7;margin:14px 0}.voice-box{font-weight:800;color:var(--red2)}.gauge-wrap{display:grid;gap:9px;margin:18px 0}.gauge-row{display:grid;grid-template-columns:112px 1fr 44px;gap:10px;align-items:center}.gauge-label{font-weight:800;color:var(--red2)}.bar{height:12px;border-radius:99px;background:#f1e7eb;overflow:hidden}.bar span{display:block;height:100%;border-radius:99px;background:var(--red)}.pt{text-align:right;color:var(--muted);font-weight:800}.result-buttons{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.card-preview-wrap{display:grid;align-content:center;justify-items:center;gap:10px}#resultCard{width:100%;max-width:690px;border:1px solid #e9c8cf;border-radius:18px;background:#fff;box-shadow:0 18px 50px rgba(75,20,32,.14)}.small-note{font-size:13px;color:var(--muted);margin:0}
@media(max-width:900px){.shell,.screen{min-height:auto}.title-screen.active{display:block;padding:42px 22px}.gloria-stage{margin-top:22px}.mode-grid{grid-template-columns:1fr}.result-layout{grid-template-columns:1fr;padding:18px}.novel-text{font-size:17px}.textbox{position:relative;left:auto;right:auto;bottom:auto;margin:0 14px 14px}.novel-visual{height:360px}.gloria-mini{width:230px;height:310px}h1{font-size:48px}h2{font-size:32px}}


/* v2 logo + transparency fix */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.title-logo{display:block;width:min(690px,100%);height:auto;margin:0 0 18px;filter:drop-shadow(0 8px 20px rgba(210,59,82,.16))}
.result-brand-logo{display:block;width:min(290px,86%);height:auto;margin:-8px 0 4px;filter:drop-shadow(0 6px 14px rgba(210,59,82,.12))}
.result-type-logo{display:block;width:min(360px,92%);height:auto;margin:-6px 0 8px;filter:drop-shadow(0 6px 14px rgba(210,59,82,.10))}
.gloria-stage:before{content:none!important}
.gloria-stage{min-height:590px;background:radial-gradient(circle at 50% 45%,rgba(255,236,245,.78) 0 28%,rgba(255,245,249,.48) 43%,transparent 66%)}
.gloria-img{border-radius:0!important;background:transparent!important;filter:drop-shadow(0 26px 34px rgba(80,20,36,.20))}
.gloria-mini{overflow:visible!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;width:300px!important;height:420px!important}
.gloria-mini:before{content:"";position:absolute;inset:18px 20px;border-radius:50%;background:radial-gradient(circle,rgba(255,238,246,.72),rgba(255,248,251,.35) 52%,transparent 72%);z-index:-1}
.gloria-mini img{width:100%!important;height:100%!important;object-fit:contain!important;background:transparent!important;filter:drop-shadow(0 18px 28px rgba(80,20,36,.18))}
@media(max-width:900px){.title-logo{width:min(560px,100%)}.gloria-stage{min-height:380px}.gloria-mini{width:230px!important;height:310px!important}.result-brand-logo{width:min(240px,86%)}.result-type-logo{width:min(310px,94%)}}

.result-main h2.suffix-title{font-size:clamp(24px,4vw,36px);margin:-2px 0 10px;color:var(--accent);letter-spacing:.08em}
.result-main h2.suffix-title::before{content:''}

/* v3 result layout / compatibility rankings */
.result-main{display:block;overflow:visible}
.result-type-logo{width:min(260px,82%);margin:0 0 2px;}
.result-main h2.suffix-title{font-size:clamp(22px,3.6vw,31px);line-height:1.2;margin:0 0 12px;letter-spacing:.04em;word-break:keep-all;overflow-wrap:anywhere;}
.compat-box{font-weight:700;color:#4c3038;word-break:keep-all;overflow-wrap:anywhere;}
.compat-ranking{margin:16px 0 14px;padding:16px;border:1px solid #f0c9cf;border-radius:20px;background:linear-gradient(180deg,#fffafa,#fff4f7);}
.compat-ranking h3{margin:0 0 6px;color:var(--red2);font-size:22px;line-height:1.2;}
.compat-ranking p{margin:0 0 12px;color:var(--muted);font-size:13px;line-height:1.6;}
.compat-rank-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.compat-rank-columns h4{margin:0 0 8px;color:var(--red2);font-size:15px;}
.compat-rank-card{display:grid;grid-template-columns:58px 1fr;gap:9px;align-items:center;min-height:72px;border:1px solid rgba(210,59,82,.16);border-left:5px solid var(--rank-color);border-radius:15px;background:#fff;padding:7px 8px;margin:8px 0;box-shadow:0 8px 18px rgba(75,20,32,.06);}
.compat-rank-card img{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 8px 10px rgba(80,20,36,.15));}
.compat-rank-card b{display:block;color:#3f2931;font-size:13px;line-height:1.35;}
.compat-rank-card span{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:3px;}
@media(max-width:900px){.compat-rank-columns{grid-template-columns:1fr}.compat-rank-card{grid-template-columns:64px 1fr}.compat-rank-card img{width:64px;height:64px}}


.return-row{margin-top:12px}
.ow-return-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  border:1px solid #edc4ca;
  background:#fff;
  color:var(--red2);
  border-radius:999px;
  padding:12px 18px;
  font-weight:800;
  text-decoration:none;
  box-shadow:0 8px 22px rgba(74,25,37,.05);
  transition:.18s;
}
.ow-return-link::before{content:"↩";margin-right:.45em}
.ow-return-link:hover{transform:translateY(-1px);box-shadow:0 12px 30px rgba(74,25,37,.10)}
.result-buttons .ow-return-link{margin-left:auto}
@media(max-width:760px){
  .result-buttons .ow-return-link{margin-left:0;width:100%}
  .return-row .ow-return-link{width:100%}
}
