.self-select-app{background:linear-gradient(180deg,#ffe8f3 0%,#fff 48%,#fff7fb 100%)}
.self-select-app .brand{font-size:16px;letter-spacing:.02em}
.self-select-app .caption{font-size:11px}
.self-select-app .screen,.self-select-app .resultBox{max-width:720px}
.heroMark{width:96px;height:96px;margin:0 auto 14px;border-radius:28px;display:grid;place-items:center;background:radial-gradient(circle at 36% 25%,#fff,#ffd9eb 55%,#ff8ec4);box-shadow:0 16px 36px rgba(233,30,99,.2);font-size:44px}
.stepBar{height:10px;border-radius:999px;background:#f7d7e6;overflow:hidden;margin:0 0 18px}
.stepBar span{display:block;height:100%;width:0;background:linear-gradient(90deg,#5bc0be,#ff5b9f,#ffc72c);transition:width .24s}
.selectionHead{position:sticky;top:64px;z-index:4;margin:-4px -4px 16px;padding:10px 4px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.84));backdrop-filter:blur(10px)}
.selectedRail{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;min-height:34px}
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:999px;border:1px solid #ffd0e4;background:#fff7fb;color:#7b1b48;padding:7px 10px;font-size:12px;font-weight:1000}
.pill.empty{color:#a98797;border-style:dashed;background:#fff}
.innerGrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.innerCard,.functionalCard{position:relative;width:100%;display:grid;gap:9px;text-align:left;background:#fff;color:#4c3440;border:1px solid #ffd0e4;border-radius:20px;padding:16px;box-shadow:0 10px 22px rgba(120,20,70,.09);transition:transform .16s,border-color .16s,box-shadow .16s,background .16s;cursor:pointer}
.innerCard:hover,.functionalCard:hover{transform:translateY(-2px);border-color:#ff8ec4;box-shadow:0 16px 34px rgba(233,30,99,.16)}
.innerCard.isSelected,.functionalCard.isSelected{border-color:#e91e63;background:linear-gradient(145deg,#fff,#fff0f6);box-shadow:0 18px 38px rgba(233,30,99,.18)}
.innerCard.isDisabled{opacity:.55;filter:saturate(.7)}
.cardTop{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.cardTitle{font-size:18px;line-height:1.35;font-weight:1000;color:#e91e63}
.cardRole{font-size:13px;line-height:1.65;color:#4c3440;font-weight:800}
.cardKeywords{font-size:12px;line-height:1.55;color:#a06982;font-weight:900}
.selectBadge{flex:0 0 auto;min-width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:#fff2f7;border:1px solid #ffd0e4;color:#e91e63;font-size:12px;font-weight:1000}
.isSelected .selectBadge{background:#e91e63;color:#fff;border-color:#e91e63}
.cardLink{justify-self:start;color:#e91e63;font-size:12px;font-weight:1000;text-decoration:underline;text-underline-offset:3px}
.innerCard{padding:8px;border-radius:16px;overflow:hidden;background:#171717;color:#f8f1ff;border-color:rgba(233,30,99,.34)}
.innerCard:hover{border-color:#ff5b9f}
.innerCard.isSelected{background:#24121b;border-color:#ff5b9f;box-shadow:0 18px 38px rgba(233,30,99,.28)}
.innerCard .cardTop{position:absolute;z-index:2;inset:8px 8px auto auto}
.innerCard .selectBadge{background:rgba(0,0,0,.52);border-color:rgba(255,255,255,.34);color:#fff;backdrop-filter:blur(8px)}
.innerCard.isSelected .selectBadge{background:#e91e63;border-color:#e91e63}
.innerImageWrap{position:relative;width:100%;aspect-ratio:3/4;border-radius:12px;overflow:hidden;background:#2d1b24}
.innerImage{display:block;width:100%;height:100%;object-fit:cover}
.innerImageShade{position:absolute;inset:auto 0 0;padding:36px 10px 10px;background:linear-gradient(180deg,transparent,rgba(0,0,0,.78));color:#fff}
.innerImageShade .cardTitle{display:block;color:#fff;font-size:clamp(13px,1.6vw,18px);line-height:1.15;text-shadow:0 2px 8px rgba(0,0,0,.55)}
.innerImageShade .cardKeywords{display:block;margin-top:5px;color:rgba(255,255,255,.78);font-size:10px;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.innerCard .cardRole{font-size:11px;line-height:1.45;color:#d8cfd4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.innerCard .cardLink{color:#ff8ec4;font-size:11px}
.candidateMeta{display:flex;flex-wrap:wrap;gap:7px}
.scorePill{display:inline-flex;border-radius:999px;background:#e8fbf8;color:#0f766e;border:1px solid rgba(20,132,120,.2);padding:5px 8px;font-size:11px;font-weight:1000}
.rankPick{position:absolute;top:12px;right:12px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;border:1px solid #ffd0e4;color:#e91e63;font-size:12px;font-weight:1000;box-shadow:0 8px 18px rgba(120,20,70,.1)}
.functionalCard.isSelected .rankPick{background:#e91e63;color:#fff}
.functionalCard{grid-template-columns:112px 1fr;align-items:start;min-height:160px;padding:12px 54px 12px 12px}
.functionalImageWrap{width:112px;aspect-ratio:3/4;border-radius:14px;overflow:hidden;background:#2d1b24;box-shadow:0 10px 22px rgba(120,20,70,.14)}
.functionalImage{display:block;width:100%;height:100%;object-fit:cover}
.functionalText{display:grid;gap:8px;min-width:0}
.mapBoard{position:relative;margin:18px 0;padding:18px;border-radius:28px;background:radial-gradient(circle at 50% 50%,rgba(255,91,159,.18),transparent 28%),linear-gradient(145deg,#fff,#fff6fa);border:1px solid #ffd0e4;box-shadow:0 18px 45px rgba(120,20,70,.14)}
.mapGrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.mapNode{min-height:148px;border-radius:22px;padding:16px;background:#fff;border:1px solid #ffe1ef;box-shadow:0 10px 24px rgba(120,20,70,.08)}
.mapNode h3{margin:0 0 8px;color:#e91e63;font-size:16px;line-height:1.35}
.mapNode p{margin:0;color:#4c3440;font-size:13px;line-height:1.65;font-weight:800}
.mapNode.inner h3{color:#0f766e}
.mapCenter{display:grid;place-items:center;margin:12px auto;width:min(100%,360px);min-height:72px;border-radius:999px;background:linear-gradient(135deg,#ff5b9f,#e91e63);color:#fff;text-align:center;font-weight:1000;box-shadow:0 12px 26px rgba(233,30,99,.24)}
.mapCenter small{display:block;font-size:11px;opacity:.86;margin-top:3px}
.readingBlock{display:grid;gap:12px;margin-top:18px}
.readingCard{padding:15px;border-radius:18px;background:#fff7fb;border:1px solid #ffe1ef}
.readingCard h3{margin:0 0 7px;color:#7b1b48;font-size:15px}
.readingCard p{margin:0;color:#4c3440;font-size:14px;line-height:1.75;font-weight:800}
.linkGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:12px}
.maskLinkChip{display:flex;align-items:center;justify-content:space-between;gap:8px;text-decoration:none;color:#4c3440;background:#fff;border:1px solid #ffd0e4;border-radius:14px;padding:10px 12px;font-size:13px;font-weight:1000}
.maskLinkChip:hover{border-color:#ff5b9f;box-shadow:0 8px 18px rgba(233,30,99,.14)}
.emptyState{padding:18px;border-radius:18px;background:#fff7fb;border:1px dashed #ffd0e4;color:#755b68;font-weight:900;line-height:1.7}
.selfMaskPip .maskPipNoImage{width:108px;aspect-ratio:1/1;border-radius:14px;background:radial-gradient(circle at 50% 30%,#fff,#ffe0ef 55%,#f8b6d3);border:1px solid #ffe1ef;display:grid;place-items:center;color:#e91e63;font-size:30px}
.selfMiniResult{background:rgba(255,250,252,.94);border-color:#ffd0e4}
.selfMiniResult .kicker{margin:0 0 10px;color:#e91e63;font-size:12px;font-weight:1000;letter-spacing:.12em;text-transform:uppercase}
.selfMiniResult h1{font-size:clamp(30px,7vw,42px);line-height:1.18;margin:0 0 12px;color:#e91e63}
.save-status{font-size:12px;color:#755b68;margin:0 0 14px}
.selfMiniResult .result-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0}
.selfMiniResult .result-grid section,.selfMiniResult .reading{border-radius:18px;padding:14px;background:rgba(45,38,43,.68);border:1px solid rgba(255,255,255,.14);color:#ffe8f3}
.selfMiniResult .result-grid h2{font-size:16px;margin:0 0 8px;color:#ff8ec4}
.selfMiniResult .mask-item{padding:10px 0;border-top:1px solid rgba(255,255,255,.12)}
.selfMiniResult .mask-item:first-child{border-top:0}
.selfMiniResult .mask-name{font-size:20px;font-weight:1000}
.selfMiniResult .mask-score{font-size:12px;color:#f8cfe0;margin-top:2px}
.selfMiniResult .mask-name-btn{background:none;border:0;color:#ffb1d0;font:inherit;font-weight:inherit;padding:0;text-align:left;text-decoration:underline;text-decoration-style:dotted;text-underline-offset:4px;cursor:pointer}
.selfMiniResult .mask-name-btn:hover,.selfMiniResult .mask-name-btn:focus-visible{color:#fff;outline:none}
.selfMiniResult .reading{font-size:14px;line-height:1.8;margin:12px 0}
.selfMiniResult .mini-insight-block{padding:0 0 13px;margin:0 0 13px;border-bottom:1px solid rgba(255,255,255,.12)}
.selfMiniResult .mini-insight-block:last-child{padding-bottom:0;margin-bottom:0;border-bottom:0}
.selfMiniResult .mini-insight-block h3{font-size:16px;color:#ff8ec4;margin:0 0 6px}
.selfMiniResult .mini-insight-block p{margin:0;color:#ffe8f3;line-height:1.75}
.selfMiniResult .hero-reading strong{display:block;color:#ff8ec4;font-size:12px;letter-spacing:.08em;margin-bottom:4px}
.selfMiniResult .hero-result-image{width:120px;max-width:38vw;aspect-ratio:1/1;object-fit:contain;border-radius:16px;background:rgba(255,255,255,.88);border:1px solid rgba(255,208,228,.55);display:block;margin:8px 0 10px}
.selfMiniResult .hero-result-share-image{width:min(100%,560px);max-width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:18px;background:rgba(255,255,255,.9);box-shadow:0 18px 42px rgba(0,0,0,.18)}
.selfMiniResult .hero-result-share-link{display:block;width:min(100%,560px);max-width:100%;margin:8px 0 10px}
.selfMiniResult .actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}
.selfMiniResult .actions .primary{grid-column:1/-1}
@media(max-width:640px){
  .selectionHead{top:58px}
  .innerGrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
  .mapGrid,.linkGrid{grid-template-columns:1fr}
  .mapNode{min-height:auto}
  .footerBtns{flex-direction:column}
  .functionalCard{grid-template-columns:92px 1fr;min-height:132px;padding:10px 48px 10px 10px}
  .functionalImageWrap{width:92px;border-radius:12px}
  .functionalCard .cardTitle{font-size:17px}
  .functionalCard .cardRole{font-size:12px}
  .functionalCard .cardKeywords{font-size:11px}
  .selfMiniResult .result-grid,.selfMiniResult .actions{grid-template-columns:1fr}
}
@media(max-width:420px){
  .innerGrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .innerCard{padding:6px;border-radius:14px}
  .innerImageWrap{border-radius:10px}
  .functionalCard{grid-template-columns:82px 1fr;gap:8px}
  .functionalImageWrap{width:82px}
  .functionalCard .candidateMeta .pill{display:none}
}
