@font-face {
  font-family: "Laiti Healing";
  src: url("/assets/laiti-regular.woff2") format("woff2");
  font-display: swap;
  font-weight: 400;
  font-style: normal;
}
:root {
  --bg:#faf7fc;
  --paper:#fffdfc;
  --lav:#927bcf;
  --lav-deep:#625184;
  --lav-soft:#eee8f8;
  --ink:#4c4269;
  --muted:#766f7e;
  --line:rgba(103,85,144,.18);
  --gold:#c8aa77;
  --serif:"Laiti Healing","Noto Serif TC","Songti TC","PMingLiU",Georgia,serif;
  --sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
}
*{box-sizing:border-box}
html{background:var(--bg);scroll-behavior:smooth}
body{margin:0;min-width:320px;color:var(--ink);font-family:var(--sans);background:radial-gradient(circle at 18% 22%,rgba(220,207,245,.35),transparent 25%),radial-gradient(circle at 85% 70%,rgba(216,201,241,.28),transparent 25%),linear-gradient(180deg,#fffdfb 0%,#f7f1fb 100%);-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}
button,textarea,input{font:inherit}
button{cursor:pointer}
.check-shell{width:min(930px,calc(100% - 40px));margin-inline:auto}
.check-header{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--line);background:rgba(251,249,252,.91);backdrop-filter:blur(14px)}
.check-nav{min-height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.check-brand{display:flex;align-items:center;gap:11px}.check-brand img{width:50px;height:50px;object-fit:cover;border-radius:50%;box-shadow:0 8px 20px rgba(88,67,129,.12)}
.check-brand span{display:grid}.check-brand strong{font-family:var(--serif);font-size:21px;font-weight:500;letter-spacing:.12em}.check-brand small{margin-top:3px;color:#9988bc;font-size:7px;letter-spacing:.20em}
.back-home{padding:9px 15px;border:1px solid rgba(112,91,169,.35);border-radius:999px;color:#6c579d;background:rgba(255,255,255,.65);font-family:var(--serif);font-size:13px;letter-spacing:.05em}
.check-main{position:relative;min-height:calc(100vh - 76px);overflow:hidden}.check-orbit{position:fixed;pointer-events:none;border:1px solid rgba(151,125,207,.12);border-radius:50%}.orbit-left{width:280px;height:280px;left:-150px;top:23%}.orbit-right{width:360px;height:360px;right:-220px;bottom:-70px}
.check-screen{display:none;min-height:calc(100vh - 76px);padding:70px 0 80px}.check-screen.is-active{display:block;animation:screenIn .42s ease both}@keyframes screenIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.intro-wrap{max-width:790px;text-align:center;padding-top:35px}.screen-eyebrow{margin:0 0 13px;color:#9a84cc;font-size:10px;font-weight:700;letter-spacing:.23em}.intro-spark,.result-mark{display:inline-block;margin-bottom:8px;color:var(--gold);font-size:18px}.intro-wrap h1,.result-shell>h1{margin:0;font-family:var(--serif);font-weight:400;color:#4c406b;letter-spacing:.055em;line-height:1.48}.intro-wrap h1{font-size:clamp(34px,5vw,53px)}
.intro-copy{max-width:680px;margin:20px auto 0;color:#716a78;font-size:15px;line-height:2}.ritual-steps{display:flex;align-items:center;justify-content:center;gap:10px;margin:34px auto;flex-wrap:wrap}.ritual-steps span{display:grid;gap:3px;min-width:105px;color:#6e6382;font-family:var(--serif);font-size:13px}.ritual-steps b{color:#a18bd0;font-size:12px;font-weight:500;letter-spacing:.08em}.ritual-steps i{width:26px;height:1px;background:linear-gradient(90deg,transparent,#c8bae4,transparent)}
.check-primary,.check-secondary,.check-line-button{min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 28px;border-radius:999px;letter-spacing:.06em;font-family:var(--serif);font-size:15px;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.check-primary{border:0;color:#fff;background:linear-gradient(90deg,#a58bd8,#8068c4);box-shadow:0 12px 27px rgba(105,82,167,.22)}.check-secondary{border:1px solid rgba(108,88,161,.37);color:#6d5a97;background:rgba(255,255,255,.75)}.check-primary:hover,.check-secondary:hover,.check-line-button:hover{transform:translateY(-1px)}.intro-note{margin:13px auto 0;color:#918997;font-size:12px;line-height:1.7}
.form-shell{max-width:820px}.progress-wrap{margin-bottom:25px}.progress-top{display:flex;justify-content:space-between;gap:15px;margin-bottom:9px;color:#736588;font-family:var(--serif);font-size:13px}.progress-track{height:4px;overflow:hidden;border-radius:999px;background:#e9e1f2}.progress-track span{display:block;width:25%;height:100%;border-radius:inherit;background:linear-gradient(90deg,#b5a1df,#8971c6);transition:width .3s ease}
.question-card{display:none;padding:38px 42px;border:1px solid rgba(130,107,187,.30);border-radius:24px;background:rgba(255,255,255,.78);box-shadow:0 18px 45px rgba(83,65,123,.07);backdrop-filter:blur(7px)}.question-card.is-active{display:block;animation:questionIn .35s ease both}@keyframes questionIn{from{opacity:0;transform:translateX(8px)}to{opacity:1;transform:none}}.question-number{margin:0 0 10px;color:#ad99d7;font-size:10px;font-weight:700;letter-spacing:.20em}.question-card h2{margin:0;color:#50436d;font-family:var(--serif);font-size:clamp(25px,3.4vw,34px);font-weight:400;line-height:1.55;letter-spacing:.04em}.question-help{margin:9px 0 23px;color:#827a88;font-size:13px;line-height:1.8}
.choice-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.choice-grid label{position:relative}.choice-grid input{position:absolute;opacity:0;pointer-events:none}.choice-grid span{min-height:48px;display:flex;align-items:center;padding:11px 15px;border:1px solid rgba(130,107,187,.24);border-radius:13px;color:#61566f;background:rgba(251,249,253,.78);font-size:13px;line-height:1.55;transition:.18s ease}.choice-grid label:hover span{border-color:rgba(123,98,185,.48);background:#fff}.choice-grid input:checked+span{border-color:#947bd0;color:#594777;background:#f0eafa;box-shadow:0 6px 16px rgba(104,82,158,.09)}.multi-choice input:checked+span::before{content:"✓";margin-right:8px;color:#8068bd;font-weight:700}.single-choice input:checked+span::before{content:"●";margin-right:8px;color:#947bd0;font-size:8px}
.text-field,.other-field{margin-top:20px}.text-field label,.other-field label{display:block;margin-bottom:8px;color:#645976;font-family:var(--serif);font-size:14px;line-height:1.6}.text-field em{color:#99909f;font-family:var(--sans);font-size:11px;font-style:normal}.text-field textarea,.other-field textarea{width:100%;min-height:104px;resize:vertical;padding:14px 15px;border:1px solid rgba(125,102,180,.27);border-radius:13px;outline:none;color:#584f61;background:rgba(255,255,255,.86);font-size:13px;line-height:1.75}.text-field textarea:focus,.other-field textarea:focus{border-color:#9b83d2;box-shadow:0 0 0 3px rgba(150,125,208,.10)}
.example-box{margin-top:25px;padding:17px 19px;border-left:2px solid #c8ad79;border-radius:0 12px 12px 0;background:rgba(246,241,250,.72)}.example-box strong{display:block;margin-bottom:5px;color:#8c76b9;font-family:var(--serif);font-size:13px;letter-spacing:.04em}.example-box p{margin:0;color:#7c7482;font-size:12px;line-height:1.85}.form-actions{display:flex;justify-content:space-between;gap:13px;margin-top:22px}.form-actions button{min-width:150px}.form-error{min-height:22px;margin-top:10px;color:#a65a6b;font-size:12px;text-align:center}
.processing-screen{display:none;place-items:center;text-align:center}.processing-screen.is-active{display:grid}.processing-inner{padding:80px 20px}.breathing-orb{width:110px;height:110px;display:grid;place-items:center;margin:0 auto 24px;border:1px solid rgba(147,122,205,.35);border-radius:50%;background:radial-gradient(circle,#fff 18%,#eee6fa 60%,rgba(222,209,247,.35));box-shadow:0 0 0 15px rgba(194,176,232,.08);animation:breathe 1.6s ease-in-out infinite}.breathing-orb span{color:#c4a974;font-size:20px}@keyframes breathe{50%{transform:scale(1.07);box-shadow:0 0 0 25px rgba(194,176,232,.04)}}.processing-inner p{margin:0;color:#584a79;font-family:var(--serif);font-size:23px;letter-spacing:.06em}.processing-inner small{display:block;margin-top:10px;color:#918798;font-size:12px}
.result-shell{max-width:790px;text-align:center}.result-shell>h1{font-size:clamp(31px,4.5vw,45px)}.result-intro{max-width:680px;margin:17px auto 26px;color:#746d79;font-size:14px;line-height:1.95}.result-card{padding:28px 32px;border:1px solid rgba(128,105,183,.30);border-radius:21px;background:rgba(255,255,255,.82);box-shadow:0 18px 48px rgba(83,65,123,.07);text-align:left}.result-row{padding:14px 0;border-bottom:1px solid rgba(103,85,144,.10)}.result-row:last-child{border-bottom:0}.result-row span{display:block;margin-bottom:5px;color:#9a83c9;font-family:var(--serif);font-size:12px;letter-spacing:.05em}.result-row strong,.result-row p{margin:0;color:#5c5264;font-size:14px;line-height:1.75}.result-row strong{font-weight:500}.result-guidance{margin-top:28px;padding:29px;border:1px solid rgba(130,107,187,.25);border-radius:20px;background:linear-gradient(135deg,rgba(247,242,251,.92),rgba(255,253,251,.88))}.result-guidance h2{margin:0 0 8px;color:#574875;font-family:var(--serif);font-size:25px;font-weight:400}.result-guidance>p{max-width:590px;margin:0 auto 18px;color:#786f7f;font-size:13px;line-height:1.85}.copy-button,.check-line-button{width:min(390px,100%);margin-inline:auto}.check-line-button{margin-top:10px;border:1px solid rgba(106,87,161,.40);color:#6b5797;background:#fff}.copy-status{min-height:20px!important;margin:9px auto 0!important;color:#745fa2!important;font-weight:600}.result-guidance small{display:block;margin-top:8px;color:#948b99;font-size:11px}.restart-button{margin-top:22px;border:0;color:#82788e;background:transparent;text-decoration:underline;text-underline-offset:4px;font-size:12px}
.check-footer{min-height:66px;display:flex;align-items:center;justify-content:center;gap:25px;padding:15px 20px;border-top:1px solid var(--line);color:#81778c;background:rgba(249,246,251,.86);font-size:12px}.check-footer a{font-family:var(--serif);color:#6a588f}
.music-toggle{position:fixed;right:18px;bottom:18px;z-index:60;display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 14px;border:1px solid rgba(111,88,178,.28);border-radius:999px;color:#6d5a9e;background:rgba(255,255,255,.88);box-shadow:0 10px 24px rgba(85,67,120,.12);backdrop-filter:blur(12px);cursor:pointer}.music-toggle.is-playing{background:rgba(241,236,251,.94)}.music-label{font-size:12px}
@media(max-width:680px){.check-shell{width:min(100% - 28px,930px)}.check-nav{min-height:68px}.check-brand img{width:44px;height:44px}.check-brand strong{font-size:18px}.check-brand small{font-size:6px}.back-home{padding:8px 12px;font-size:12px}.check-screen{min-height:calc(100vh - 68px);padding:46px 0 62px}.intro-wrap{padding-top:18px}.intro-wrap h1{font-size:34px}.intro-copy{font-size:13px;line-height:1.9}.ritual-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}.ritual-steps i{display:none}.ritual-steps span{padding:10px;border:1px solid rgba(129,105,185,.16);border-radius:13px;background:rgba(255,255,255,.48)}.question-card{padding:27px 20px;border-radius:20px}.choice-grid{grid-template-columns:1fr}.question-card h2{font-size:26px}.form-actions{position:sticky;bottom:8px;z-index:5;padding:10px;border:1px solid rgba(124,101,179,.18);border-radius:18px;background:rgba(250,247,252,.93);backdrop-filter:blur(10px)}.form-actions button{min-width:0;flex:1;padding-inline:13px;font-size:13px}.result-card{padding:20px}.result-guidance{padding:23px 18px}.check-footer{flex-direction:column;gap:3px}.music-toggle{width:42px;height:42px;padding:0;justify-content:center}.music-label{display:none}}


/* v34: exact four-question free relationship check */
.answer-textarea{min-height:150px!important;font-size:14px!important;line-height:1.9!important}
.result-guidance .result-copy-instruction{max-width:650px!important;margin:10px auto 22px!important;color:#c63f4e!important;font-size:18px!important;font-weight:700!important;line-height:1.85!important;letter-spacing:.015em}
.result-guidance .result-copy-instruction strong{color:#c63f4e!important;font-weight:800!important}
@media(max-width:680px){.answer-textarea{min-height:170px!important}.result-guidance .result-copy-instruction{font-size:16px!important;line-height:1.8!important}}

/* v52: quick Q&A basic info */
.age-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:4px}
.age-field{margin-top:16px}
.answer-input{width:100%;min-height:52px;padding:12px 15px;border:1px solid rgba(125,102,180,.27);border-radius:13px;outline:none;color:#584f61;background:rgba(255,255,255,.86);font-size:14px;line-height:1.5}
.answer-input:focus{border-color:#9b83d2;box-shadow:0 0 0 3px rgba(150,125,208,.10)}
.answer-input::placeholder{color:#aaa1af}
@media(max-width:680px){.age-grid{grid-template-columns:1fr;gap:2px}.age-field{margin-top:14px}}
