.reading-form{perspective:1200px;gap:24px;display:grid}.reading-mode-switch{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:24px;padding:8px;display:grid}.reading-mode-switch button{border-radius:var(--radius-sm);min-height:72px;color:var(--text);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:start;padding:12px 18px;font-weight:800;display:flex}.reading-mode-switch button small{color:var(--text-sub);font-weight:500}.reading-mode-switch button.is-active{border-color:color-mix(in srgb, var(--love) 35%, var(--border));background:var(--love-soft);color:var(--love-deep)}.form-section{padding:var(--panel-pad-lg);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);transition:border-color .25s,box-shadow .25s,transform .25s;animation:.52s both section-arrive;position:relative;overflow:hidden}.form-section:nth-of-type(2){animation-delay:60ms}.form-section:nth-of-type(3){animation-delay:.12s}.form-section:nth-of-type(4){animation-delay:.18s}.form-section:focus-within{border-color:color-mix(in srgb, var(--love) 34%, var(--border));box-shadow:var(--shadow-md)}.form-section:after{aspect-ratio:1;border:1px solid color-mix(in srgb, var(--love) 12%, transparent);content:"";pointer-events:none;border-radius:50%;width:150px;position:absolute;top:-70px;right:-70px}.form-section__head{grid-template-columns:46px 1fr;align-items:start;gap:16px;margin-bottom:28px;display:grid}.form-section__head>span{aspect-ratio:1;background:var(--love-soft);width:42px;color:var(--love-deep);border-radius:50%;place-items:center;font-size:.75rem;font-weight:800;display:grid}.form-section__head h2{margin:0;font-size:clamp(1.35rem,3vw,1.9rem)}.form-section__head p{color:var(--text-sub);margin:6px 0 0}.prefilled-badge{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--accent) 8%, var(--surface));color:var(--text);margin:0 0 20px;padding:12px 16px;font-size:.88rem;font-weight:600;line-height:1.6}.field-done{color:var(--accent)}.prefilled-birth-value{border:1px solid color-mix(in srgb, var(--accent) 30%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--accent) 8%, var(--surface));margin:0;padding:14px 16px;font-size:1rem;font-weight:700}.prefilled-birth-value small{color:var(--text-sub);margin-top:4px;font-size:.76rem;font-weight:500;line-height:1.6;display:block}.choice-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.choice-card{cursor:pointer;display:block;position:relative}.choice-card input{opacity:0;pointer-events:none;position:absolute}.choice-card span{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-warm);flex-direction:column;justify-content:center;gap:4px;min-height:92px;padding:18px 20px;transition:transform .2s,border-color .2s,box-shadow .2s,background .2s;display:flex;position:relative;overflow:hidden}.choice-card span:after{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--surface) 70%, transparent), transparent);content:"";width:48px;height:100%;transition:transform .45s;position:absolute;top:0;right:0;transform:translate(110%)skew(-18deg)}.choice-card:hover span{border-color:color-mix(in srgb, var(--love) 32%, var(--border));box-shadow:var(--shadow-sm);transform:translateY(-2px)}.choice-card:hover span:after{transform:translate(-430%)skew(-18deg)}.choice-card strong{font-size:1rem}.choice-card small{color:var(--text-sub);font-size:.86rem;line-height:1.55}.choice-card input:checked+span{border-color:var(--love);background:color-mix(in srgb, var(--love-soft) 78%, var(--surface));box-shadow:0 0 0 2px color-mix(in srgb, var(--love) 16%, transparent)}.choice-card input:focus-visible+span{outline:3px solid var(--focus);outline-offset:2px}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}.field{flex-direction:column;gap:8px;min-width:0;display:flex}.field--full{grid-column:1/-1}.field>span,.field legend{color:var(--text);font-weight:700}.birth-date-select{grid-template-columns:130px 100px 100px;gap:10px;display:grid}.birth-date-select label{flex-direction:column;gap:6px;display:flex}.birth-date-select label>span{color:var(--text-sub);font-size:.8rem;font-weight:700}.birth-date-select select{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);width:100%;min-height:50px;color:var(--text);max-width:100%;padding:11px 13px}@media (width<=760px){.birth-date-select{grid-template-columns:1fr 1fr}.birth-date-select label:first-child{grid-column:1/-1}}.field span small{color:var(--text-sub);font-weight:500}.field span b{color:var(--love-deep);margin-left:5px;font-size:.75rem}.field input:not([type=checkbox]):not([type=radio]),.field select{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);width:100%;min-height:50px;color:var(--text);max-width:100%;padding:11px 13px}.field input:not([type=checkbox]):not([type=radio]),.field select,.field textarea{transition:border-color .18s,box-shadow .18s,transform .18s}.field input:not([type=checkbox]):not([type=radio]):focus,.field select:focus,.field textarea:focus{border-color:color-mix(in srgb, var(--love) 60%, var(--border));box-shadow:0 0 0 4px color-mix(in srgb, var(--love) 12%, transparent)}.field em{color:var(--danger);font-size:.85rem;font-style:normal}.field-error{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border));border-radius:var(--radius-sm);background:color-mix(in srgb, var(--danger) 8%, var(--surface));color:var(--danger);margin:14px 0 0;padding:12px 16px;font-size:.9rem}.field-note{color:var(--text-sub);margin:0;font-size:.88rem;line-height:1.7}.check-row{color:var(--text-sub);align-items:center;gap:9px;font-size:.92rem;display:flex}.check-row input{width:19px;height:19px;accent-color:var(--love-deep)}.boundary-field{border:1px solid var(--border);border-radius:var(--radius-sm);flex-flow:wrap;align-items:center;gap:10px 24px;padding:18px 20px;display:flex}.boundary-field legend{padding-inline:6px}.boundary-field label{align-items:center;gap:7px;display:flex}.boundary-field p{flex:100%}.map-row{border-radius:var(--radius-sm);background:var(--surface-muted);flex-direction:row;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;display:flex}.map-row .button{flex:none}.map-row .button:disabled{opacity:.55;cursor:not-allowed}.advanced-fields{border:1px solid var(--border);border-radius:var(--radius-sm);padding:16px 18px}.advanced-fields summary{cursor:pointer;font-weight:700}.advanced-fields>p{color:var(--text-sub)}.name-stroke-editor{border:1px solid color-mix(in srgb, var(--gold) 26%, var(--border));border-radius:var(--radius-sm);background:var(--surface-warm);padding:16px 18px}.optional-fields{border-top:1px dashed var(--border);margin-top:22px;padding-top:16px}.optional-fields>summary{cursor:pointer;color:var(--text);align-items:center;gap:7px;font-weight:750;list-style:none;display:inline-flex}.optional-fields>summary::-webkit-details-marker{display:none}.optional-fields>summary:before{content:"▸";color:var(--text-sub);font-size:.8rem;transition:transform .16s}.optional-fields[open]>summary:before{transform:rotate(90deg)}.optional-fields>.field-note{margin-top:10px}.optional-fields>.field-grid,.optional-fields>.birthplace-block{margin-top:16px}.optional-fields>.field-grid .name-stroke-editor{grid-column:1/-1}.form-steps{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);box-shadow:var(--shadow-sm);gap:8px;padding:10px;display:flex}.form-steps__item{border-radius:var(--radius-sm);color:var(--text-sub);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;flex-direction:column;flex:1;align-items:center;gap:3px;padding:10px 8px;transition:background .2s,border-color .2s,color .2s;display:flex}.form-steps__item.is-active{border-color:var(--love-deep);background:var(--love-soft);color:var(--love-deep)}.form-steps__item.is-done{color:var(--love-deep)}.form-steps__num{font-size:1.1rem;font-weight:700}.form-steps__label{font-size:.85rem;font-weight:600}.form-steps__sub{color:var(--text-sub);font-size:.72rem}.form-step-nav{justify-content:space-between;gap:12px;margin-top:24px;display:flex}.form-step-nav .button{flex:none}.name-stroke-editor summary{cursor:pointer;color:var(--text);font-weight:750}.name-stroke-editor>p{color:var(--text-sub);margin:10px 0 16px;font-size:.88rem;line-height:1.7}.subsection-heading h3{font-family:var(--font-sans);margin:0;font-size:1.05rem;font-weight:800}.subsection-heading h3 small{color:var(--text-sub);font-size:.75rem;font-weight:600}.subsection-heading p{color:var(--text-sub);margin:4px 0 16px}.coordinate-fields{border:1px solid color-mix(in srgb, var(--gold) 30%, var(--border));border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--surface-warm), color-mix(in srgb, var(--surface) 92%, var(--gold)));grid-template-columns:minmax(190px,.72fr) 1.28fr;align-items:start;gap:22px;padding:18px 20px;display:grid}.coordinate-fields strong{font-size:.95rem}.coordinate-fields strong small{color:var(--text-sub);font-size:.73rem}.coordinate-fields>div:first-child p{color:var(--text-sub);margin:5px 0 0;font-size:.84rem;line-height:1.65}.coordinate-inputs{gap:14px;display:grid}.coordinate-paste{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;display:grid}.coordinate-paste label{color:var(--text);gap:6px;font-size:.86rem;font-weight:700;display:grid}.coordinate-paste input{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);width:100%;min-height:48px;color:var(--text);padding:10px 12px}.coordinate-paste .button{border-radius:var(--radius-xs);min-height:48px}.coordinate-paste small{color:var(--work);grid-column:1/-1;font-weight:700}.form-submit{padding:var(--panel-pad);background:linear-gradient(135deg, var(--surface), var(--surface-warm));justify-content:space-between;align-items:center;gap:28px;display:flex}.form-submit h2{margin:0 0 8px;font-size:1.4rem}.form-submit p{max-width:610px;color:var(--text-sub);margin:0 0 12px}.form-submit .button{flex:none}.form-error{border:1px solid color-mix(in srgb, var(--danger) 40%, var(--border));border-radius:var(--radius-sm);background:var(--danger-soft);color:var(--danger);margin-bottom:20px;padding:18px 20px}.form-error p{margin:3px 0 0}.form-subsection{border-top:1px solid var(--border);margin-top:24px;padding-top:24px}.person-card{position:relative;overflow:hidden}.person-card:before{background:var(--love);content:"";width:4px;position:absolute;top:0;bottom:0;left:0}.person-card--partner:before{background:var(--gold)}.partner-partial{margin-top:24px}.reading-result{gap:32px;animation:.6s result-enter;display:grid}.result-hero{padding-block:24px}.result-hero>h2{max-width:900px;margin:0 0 30px;font-size:clamp(2rem,6vw,4rem)}.result-conclusion{padding:var(--panel-pad-lg);border-color:color-mix(in srgb, var(--love) 35%, var(--border));background:linear-gradient(145deg, var(--surface), var(--surface-warm))}.result-conclusion>span{color:var(--love-deep);letter-spacing:.12em;font-size:.8rem;font-weight:800}.result-conclusion h2{max-width:760px;margin:12px 0 20px;font-size:clamp(1.55rem,4vw,2.45rem)}.result-conclusion p{text-align:left;max-width:46em;margin:0 0 14px;font-size:1.05rem;line-height:1.95}.key-points{grid-template-columns:repeat(3,1fr);gap:12px;margin:16px 0 24px;padding:0;list-style:none;display:grid}.key-points li{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);gap:12px;padding:18px;display:flex}.key-points b{color:var(--love-deep);font-size:.75rem}.key-points span{font-size:.94rem;line-height:1.7}.agreement-panel{padding:var(--panel-pad);grid-template-columns:1fr auto;gap:24px;display:grid}.agreement-panel h2{margin:0}.agreement-badge{border-radius:var(--radius-sm);background:var(--love-soft);min-width:145px;color:var(--love-deep);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:14px;display:flex}.agreement-badge small{font-size:.75rem}.agreement-badge strong{font-family:var(--font-serif);font-size:1.2rem}.agreement-copy{grid-column:1/-1;max-width:48em}.agreement-copy h3{margin:0 0 12px}.agreement-copy p{margin:8px 0}.conflict-box{border-left:3px solid var(--gold);background:color-mix(in srgb, var(--gold) 8%, var(--surface));margin-top:18px;padding:18px 20px}.dimensions-panel{padding:var(--panel-pad)}.dimensions-panel .section-heading{max-width:720px;margin-bottom:24px}.dimensions-panel .section-heading h2{margin:0}.dimensions-panel .section-heading p:last-child{color:var(--text-sub)}.dimension-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.dimension-empty{border:1px dashed var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:18px 20px}.dimension-empty p{color:var(--text-sub);margin:0;line-height:1.85}.dimension-empty strong{color:var(--text)}.dimension-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-warm);padding:20px}.dimension-card header{justify-content:space-between;align-items:start;gap:16px;display:flex}.dimension-card h3{font-family:var(--font-sans);margin:0;font-size:1rem}.dimension-card header>strong{color:var(--love-deep);font-family:var(--font-serif);flex:none;font-size:1.45rem}.dimension-card header small{font-size:.72rem}.dimension-card[data-status=insufficient] header>strong{color:var(--text-sub);font-family:var(--font-sans);font-size:.78rem}.dimension-card p{color:var(--text-sub);margin:10px 0 0;font-size:.9rem;line-height:1.7}.dimension-card .dimension-action{border:1px solid color-mix(in srgb, var(--love) 24%, var(--border));border-radius:var(--radius-xs);background:color-mix(in srgb, var(--love-soft) 42%, var(--surface));color:var(--text);margin:12px 0 0;padding:10px 12px;font-size:.86rem;line-height:1.7}.dimension-card .dimension-action b{color:var(--love-deep)}.dimension-card details{border-top:1px solid var(--border);margin-top:12px;padding-top:10px}.dimension-card summary{cursor:pointer;color:var(--text-sub);font-size:.82rem;font-weight:700}.dimension-meter{border-radius:var(--radius-full);background:var(--surface-muted);height:5px;margin-top:12px;overflow:hidden}.dimension-meter i{border-radius:inherit;background:linear-gradient(90deg, var(--gold), var(--love));height:100%;display:block}.reading-progress{background:linear-gradient(135deg, var(--surface), var(--surface-warm));grid-template-columns:160px 1fr;align-items:center;gap:clamp(24px,5vw,54px);padding:clamp(28px,6vw,54px);display:grid;overflow:hidden}.reading-progress h2{margin:0 0 18px;font-size:clamp(1.2rem,3vw,1.6rem)}.reading-progress ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.reading-progress li{border-radius:var(--radius-xs);background:var(--surface-muted);opacity:.3;align-items:start;gap:10px;padding:10px 12px;transition:opacity .6s,background .6s;display:flex}.reading-progress li.is-active{opacity:1;background:color-mix(in srgb, var(--love-soft) 60%, var(--surface))}.reading-progress li span{color:var(--text-sub);flex-shrink:0;font-size:.7rem;font-weight:900;transition:color .4s}.reading-progress li span.is-done{color:var(--love-deep)}.reading-progress__step-content{flex-direction:column;gap:2px;display:flex}.reading-progress__step-content strong{font-size:.78rem;font-weight:600}.reading-progress__note{color:var(--text-sub);font-size:.72rem;line-height:1.5;animation:.5s progress-note}.reading-progress__orb{aspect-ratio:1;place-items:center;width:150px;margin-inline:auto;display:grid;position:relative}.reading-progress__orb b{z-index:2;aspect-ratio:1;border:1px solid color-mix(in srgb,var(--love) 45%,var(--border));background:var(--surface);width:76px;color:var(--love-deep);font-family:var(--font-serif);box-shadow:0 0 34px color-mix(in srgb,var(--love) 20%,transparent);border-radius:50%;place-items:center;font-size:1.8rem;animation:1.2s ease-in-out infinite orb-pulse;display:grid}.reading-progress__orb i{border:1px solid color-mix(in srgb,var(--love) 30%,transparent);border-radius:50%;animation:3s linear infinite orbit-spin;position:absolute;inset:10px}.reading-progress__orb i:after{aspect-ratio:1;background:var(--gold);content:"";border-radius:50%;width:8px;position:absolute;top:50%;left:-4px}.reading-progress__orb i:nth-child(2){animation-duration:4.2s;animation-direction:reverse;inset:0}.reading-progress__orb i:nth-child(3){animation-duration:2.4s;inset:24px}@keyframes section-arrive{0%{opacity:0;transform:translateY(18px)rotateX(1.5deg)}to{opacity:1;transform:none}}@keyframes result-enter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes progress-note{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@keyframes orbit-spin{to{transform:rotate(360deg)}}@keyframes orb-pulse{50%{box-shadow:0 0 48px color-mix(in srgb,var(--love) 30%,transparent);transform:scale(1.04)}}@media (width<=760px){.choice-grid,.field-grid,.key-points,.dimension-grid,.reading-mode-switch{grid-template-columns:1fr}.form-section{padding:22px 18px}.form-section__head{grid-template-columns:38px 1fr}.form-section__head>span{width:36px;font-size:.72rem}.form-section__head h2{font-size:clamp(1.1rem,5vw,1.4rem)}.map-row,.form-submit{flex-direction:column;align-items:stretch}.map-row .button,.form-submit .button{width:100%}.agreement-panel{grid-template-columns:1fr}.agreement-badge{align-items:start}.agreement-copy{grid-column:auto}.coordinate-fields,.reading-progress,.coordinate-paste{grid-template-columns:1fr}.coordinate-paste small{grid-column:auto}.reading-progress ol{grid-template-columns:1fr}.reading-progress__orb{width:100px}.reading-progress__orb b{width:56px;font-size:1.3rem}.reading-progress__orb i{inset:6px}.reading-progress__orb i:nth-child(2){inset:0}.reading-progress__orb i:nth-child(3){inset:16px}.form-steps{gap:4px;padding:6px}.form-steps__item{padding:8px 4px}.form-steps__sub{display:none}.form-steps__label{font-size:.72rem}.form-steps__num{font-size:.9rem}.form-step-nav .button{flex:1;padding:9px 14px;font-size:.82rem}.chapter-accordion__nav{flex-direction:column}.btn-chapter-nav{justify-content:center;width:100%}.dimension-card{padding:16px}.dimension-card header h3{font-size:.9rem}}
