:root {
	color-scheme:light;
	--bg:#f8faf9;
	--paper:#fff;
	--ink:#111816;
	--muted:#56625d;
	--line:#e1e7e4;
	--green:#0f6b52;
	--green-dark:#0b5743;
	--red:#c8402b;
	--wood:#1f6b3f;
	--fire:#b03420;
	--earth:#7a520b;
	--metal:#47515e;
	--water:#1b4a86;
	font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;
	font-size:16px;
	font-synthesis:none
}
* {
	box-sizing:border-box
}
body {
	margin:0;
	background:#e9eeeb;
	color:var(--ink);
	line-height:1.75;
	word-break:keep-all;
	overflow-wrap:anywhere
}
button,input,select,textarea {
	font:inherit;
	color:inherit
}
button,a,input,select,textarea,summary {
	-webkit-tap-highlight-color:transparent
}
button,summary {
	cursor:pointer
}
button {
	border:0;
	background:none;
	line-height:1.45
}
a {
	color:var(--green)
}
button:disabled {
	cursor:default;
	opacity:.45
}
input,select,textarea {
	min-width:0;
	width:100%;
	border:1px solid #c7d2cc;
	border-radius:9px;
	background:white;
	padding:12px 13px;
	min-height:50px;
	font-size:17px;
	line-height:1.45
}
input:disabled {
	background:#f1f4f2;
	color:var(--muted)
}
input[type=checkbox],input[type=radio] {
	width:19px;
	height:19px;
	min-height:0;
	padding:0;
	flex-shrink:0;
	accent-color:var(--green)
}
input[aria-invalid=true],select[aria-invalid=true] {
	border-color:var(--red)
}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
	outline:3px solid #0f6b52;
	outline-offset:3px
}
h1,h2,h3,h4,h5,p {
	margin:0
}
h3 {
	font-size:21px;
	line-height:1.5;
	letter-spacing:-.6px
}
h4,h5 {
	font-size:17px;
	line-height:1.6
}
p+p {
	margin-top:12px
}
small {
	font-size:14px
}
svg {
	flex-shrink:0
}
[hidden] {
	display:none!important
}
.sr-only {
	position:absolute;
	width:1px;
	height:1px;
	padding:0;
	margin:-1px;
	overflow:hidden;
	clip:rect(0,0,0,0);
	white-space:nowrap;
	border:0
}
.skip {
	position:fixed;
	left:12px;
	top:-100px;
	z-index:10;
	background:white;
	padding:10px
}
.skip:focus {
	top:10px
}
.app-frame {
	min-height:100vh;
	max-width:1120px;
	margin:auto;
	background:var(--bg);
	box-shadow:0 0 70px #173a2510
}
.shell {
	width:calc(100% - 64px);
	margin:auto
}
.site-header {
	height:84px;
	display:flex;
	align-items:center;
	justify-content:space-between;
	border-bottom:1px solid var(--line)
}
.brand {
	display:flex;
	align-items:center;
	gap:10px;
	color:var(--ink);
	text-decoration:none;
	font-size:22px;
	font-weight:800;
	letter-spacing:-1px
}
.brand-mark {
	width:35px;
	height:35px;
	display:grid;
	place-items:center;
	background:var(--red);
	color:white;
	border-radius:8px;
	font-family:serif;
	font-size:25px;
	font-weight:500
}
.header-actions {
	display:flex;
	align-items:center;
	gap:12px
}
.free-label {
	font-size:14px;
	color:var(--muted)
}
.icon-button {
	display:grid;
	place-items:center;
	width:44px;
	height:44px;
	font-size:26px;
	border-radius:50%
}
.icon-button:hover {
	background:#e8eeea
}
.result-header {
	display:none;
	align-items:center;
	justify-content:space-between;
	height:76px;
	border-bottom:1px solid var(--line);
	font-weight:700
}
.has-result .input-header,.has-result .intro-layout {
	display:none
}
.has-result .result-header {
	display:flex
}
.intro-layout {
	max-width:660px;
	margin:48px auto 0
}
.intro {
	position:relative;
	padding:0 4px 24px
}
.intro-kicker {
	font-size:14px;
	color:var(--green);
	font-weight:700;
	letter-spacing:.5px;
	margin-bottom:12px
}
.intro h1 {
	font-size:42px;
	line-height:1.3;
	letter-spacing:-1.8px;
	font-weight:800
}
.element-art {
	display:flex;
	gap:8px;
	margin:22px 0 18px
}
.art-element {
	width:36px;
	height:36px;
	display:grid;
	place-items:center;
	border-radius:50%;
	font-family:serif;
	font-size:20px
}
.wood,[data-element="0"] {
	--element:var(--wood);
	--tint:#e4f1e8
}
.fire,[data-element="1"] {
	--element:var(--fire);
	--tint:#fbe6e1
}
.earth,[data-element="2"] {
	--element:var(--earth);
	--tint:#f6ecd6
}
.metal,[data-element="3"] {
	--element:var(--metal);
	--tint:#eceff2
}
.water,[data-element="4"] {
	--element:var(--water);
	--tint:#e1eaf6
}
.art-element {
	color:var(--element);
	background:var(--tint)
}
.privacy-line {
	display:flex;
	align-items:center;
	gap:7px;
	font-size:14px;
	color:var(--muted)
}
.mode-picker {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	padding:5px;
	gap:3px;
	background:#e9eeeb;
	border-radius:12px;
	margin-bottom:20px
}
.mode-picker button,.mode-picker a {
	min-height:48px;
	font-size:16px;
	font-weight:700;
	color:var(--muted);
	border-radius:9px;
	padding:8px 3px
}
.mode-picker a { display:flex; align-items:center; justify-content:center; text-decoration:none; line-height:1.45; }
.mode-picker button span,.mode-picker a span {
	display:none
}
.mode-picker button[aria-pressed=true],.mode-picker a[aria-current=page] {
	color:var(--green);
	background:#fff;
	box-shadow:0 2px 5px #152d2110
}
#fortune-form {
	padding:28px;
	border:1px solid var(--line);
	border-radius:18px;
	background:var(--paper)
}
.form-title {
	font-size:22px;
	letter-spacing:-.6px;
	margin-bottom:22px
}
.form-description {
	margin:-9px 0 20px;
	color:var(--muted);
	font-size:15px
}
.person {
	min-width:0;
	margin:0 0 20px;
	padding:20px;
	border:1px solid var(--line);
	border-radius:12px
}
.person legend {
	padding:0 8px;
	font-size:17px;
	font-weight:700
}
.person.single {
	border:0;
	padding:0;
	margin-bottom:12px
}
.person.single legend {
	position:absolute;
	width:1px;
	height:1px;
	overflow:hidden;
	clip:rect(0,0,0,0)
}
.field {
	margin-bottom:18px;
	min-width:0
}
.field>label,.time-header>label {
	display:flex;
	align-items:center;
	gap:8px;
	margin-bottom:8px;
	font-weight:700
}
.optional {
	font-size:14px;
	color:var(--muted);
	font-weight:400
}
.date-row {
	display:flex;
	flex-wrap:wrap;
	gap:8px
}
.date-row input {
	flex:1 1 150px
}
.date-row select {
	flex:0 0 92px;
	width:92px
}
.time-header {
	display:flex;
	align-items:start;
	justify-content:space-between;
	gap:8px
}
.check-label {
	display:flex;
	align-items:center;
	gap:7px;
	font-size:15px;
	min-height:44px;
	cursor:pointer
}
.field .check-label {
	margin:0;
	font-weight:400
}
.time-header>label {
	margin:0;
	min-height:44px
}
.time-header label.check-label {
	font-weight:400
}
.family-toggle {
	margin:0 0 12px
}
.own-birth-date {
	margin-bottom:10px
}
.shared-birth-date {
	font-size:15px;
	color:var(--muted);
	padding:12px;
	background:var(--bg);
	border-radius:8px;
	margin-bottom:12px
}
.error {
	color:#ab2d1b;
	font-size:15px;
	margin-top:8px
}
.error:empty {
	display:none
}
.advance-input {
	font-size:15px
}
.advance-input p {
	font-size:14px;
	color:var(--muted);
	margin:8px 0
}
.advance-input summary {
	font-size:15px;
	color:var(--muted)
}
.life-paused {
	margin:40px auto;
	max-width:640px;
	display:grid;
	gap:20px
}
.life-paused h1 {
	font-size:26px
}
.name-choices {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:0 16px
}
.name-choices>.person {
	grid-column:1/-1;
	padding:10px 0 0;
	border:0
}
.style-options {
	display:flex;
	gap:8px
}
.style-option {
	flex:1;
	min-width:0;
	position:relative;
	cursor:pointer
}
.style-option input {
	position:absolute;
	opacity:0;
	width:1px
}
.style-option span {
	display:grid;
	place-items:center;
	min-height:46px;
	border:1px solid var(--line);
	border-radius:8px;
	font-size:16px
}
.style-option input:checked+span {
	background:#e7f1ec;
	border-color:var(--green);
	color:var(--green);
	font-weight:700
}
.style-option input:focus-visible+span {
	outline:3px solid var(--green);
	outline-offset:2px
}
.primary,.secondary {
	display:flex;
	align-items:center;
	justify-content:center;
	width:100%;
	min-height:54px;
	padding:13px 20px;
	border-radius:10px;
	font-size:17px;
	font-weight:700;
	text-decoration:none
}
.primary {
	background:var(--green);
	color:#fff;
	border:1px solid var(--green)
}
.primary:hover {
	background:var(--green-dark)
}
.secondary {
	border:1px solid #c7d2cc;
	background:white
}
.secondary:hover {
	background:var(--bg)
}
.text-button {
	font-size:15px;
	min-height:44px;
	color:var(--muted);
	text-decoration:underline;
	text-underline-offset:4px
}
.clear-input {
	display:block;
	margin:10px auto -8px
}
.site-footer {
	display:flex;
	align-items:center;
	justify-content:center;
	gap:14px;
	flex-wrap:wrap;
	padding:34px 0;
	color:var(--muted);
	font-size:14px;
	text-align:center
}
.site-footer>span {
	font-weight:700
}
.site-footer p {
	font-size:14px
}
.site-footer .text-button {
	font-size:14px
}
.results {
	max-width:940px;
	margin:28px auto
}
.result-heading {
	position:relative;
	padding:32px;
	background:var(--ink);
	border-radius:18px;
	color:white;
	outline-offset:5px
}
.result-caption {
	font-size:14px;
	color:#c6d3cb;
	margin-bottom:12px
}
.result-heading h2 {
	font-size:32px;
	line-height:1.4;
	letter-spacing:-1px;
	max-width:700px
}
.result-lead {
	color:#e1eae5;
	font-size:17px;
	margin-top:16px
}
.fun-notice {
	font-size:14px;
	color:#bfcec5;
	margin-top:22px;
	padding-top:16px;
	border-top:1px solid #ffffff25
}
.hero-tags {
	display:flex;
	flex-wrap:wrap;
	gap:7px;
	margin-top:18px
}
.hero-tags span {
	border:1px solid #ffffff35;
	border-radius:6px;
	padding:4px 9px;
	font-size:14px;
	color:#e1eae5
}
.result-section,.summary-panel,.reading-grid,.family-summary,.children-summary,.name-proposals,.couple-charts,.results>details,.results>div:has(>details) {
	margin-top:20px
}
.result-section,.summary-panel,.reading-block,.results>details,.results>div:has(>details) {
	padding:26px;
	background:white;
	border:1px solid var(--line);
	border-radius:14px
}
.result-section>h3,.summary-panel>h3 {
	margin-bottom:16px
}
.summary-panel p,.reading-block p {
	margin-top:12px;
	font-size:17px
}
.action,.topic-action {
	background:#edf4ef;
	border-radius:9px;
	padding:16px
}
.result-section p,.result-section li {
	font-size:16px
}
.element-summary {
	color:var(--muted);
	margin-bottom:20px
}
.boundary-note,.hidden-insight {
	padding:14px;
	background:#f5f0e4;
	border-radius:8px;
	margin-top:16px;
	font-size:15px!important
}
.element-bars {
	display:grid;
	gap:15px
}
.element-row {
	display:grid;
	grid-template-columns:90px minmax(0,1fr) 36px;
	align-items:center;
	gap:12px
}
.element-label {
	font-size:15px;
	color:var(--element);
	font-weight:700
}
.element-row b {
	font-size:15px;
	text-align:right
}
.element-row meter {
	width:100%;
	height:14px;
	appearance:none;
	-webkit-appearance:none;
	background:#edf1ee;
	border:0;
	border-radius:20px;
	overflow:hidden
}
.element-row meter::-webkit-meter-bar {
	background:#edf1ee;
	border:0;
	border-radius:20px
}
.element-row meter::-webkit-meter-optimum-value {
	background:var(--element);
	border-radius:20px
}
.element-row meter::-moz-meter-bar {
	background:var(--element);
	border-radius:20px
}
.method-note,.name-sound-note,.grade-legend,.past-note,.daily-notice {
	font-size:14px!important;
	line-height:1.8;
	color:var(--muted);
	margin-top:14px
}
.name-sound-note {
	padding:0 4px
}
.reading-grid,.family-summary,.children-summary,.couple-charts {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:16px
}
.reading-grid .reading-block {
	margin:0
}
.family-summary .reading-block h3 {
	font-size:18px
}
.conversation-list {
	margin:0;
	padding-left:23px
}
.conversation-list li+li {
	margin-top:12px
}
summary {
	min-height:48px;
	font-weight:700;
	font-size:16px;
	line-height:1.6;
	padding:10px 0
}
summary::marker {
	color:var(--green)
}
details[open]>summary {
	margin-bottom:12px
}
details p {
	font-size:15px
}
details p+p {
	margin-top:10px
}
.fortune-accordion {
	border-top:1px solid var(--line)
}
.fortune-accordion>summary {
	display:flex;
	align-items:start;
	gap:12px;
	padding:18px 0
}
.fortune-accordion>summary::after {
	content:'+';
	margin-left:auto;
	color:var(--green);
	font-size:22px;
	line-height:1.2
}
.fortune-accordion[open]>summary::after {
	content:'−'
}
.fortune-accordion summary strong {
	font-size:17px;
	flex-shrink:0
}
.fortune-accordion summary span {
	font-size:15px;
	font-weight:400;
	color:var(--muted)
}
.fortune-body {
	padding:0 0 20px
}
.fortune-body p {
	font-size:17px;
	line-height:1.9
}
.topic-people {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:14px;
	margin-top:16px
}
.topic-person {
	padding:20px;
	border:1px solid var(--line);
	border-radius:10px;
	background:var(--bg)
}
.topic-person h4 {
	color:var(--green);
	margin-bottom:10px
}
.topic-action {
	margin-top:16px
}
.topic-action h4 {
	margin-bottom:8px
}
.section-heading,.daily-heading {
	display:flex;
	align-items:center;
	justify-content:space-between;
	flex-wrap:wrap;
	gap:6px
}
.section-heading>span,.daily-date {
	color:var(--muted);
	font-size:14px
}
.timeline {
	border-top:1px solid var(--line);
	margin-top:14px
}
.year-card {
	border-bottom:1px solid var(--line)
}
.year-top {
	display:grid;
	grid-template-columns:85px 50px minmax(0,1fr);
	align-items:center;
	gap:12px;
	padding:18px 0
}
.year-top strong {
	font-size:17px
}
.year-short {
	font-weight:400;
	font-size:15px
}
.grade-badge {
	display:inline-grid;
	place-items:center;
	background:#f4e7e2;
	color:#a23723;
	border-radius:6px;
	min-width:43px;
	padding:4px 6px;
	font-size:14px;
	font-weight:700;
	line-height:1.5
}
.grade-badge[data-tone=bright],.grade-badge[data-tone=good] {
	color:#0b5743;
	background:#e4f1e8
}
.grade-badge[data-tone=steady] {
	color:#47515e;
	background:#eceff2
}
.year-body {
	padding:0 0 20px
}
.year-body h4 {
	color:var(--green)
}
dl {
	margin:14px 0
}
dt {
	font-weight:700;
	margin-top:14px
}
dd {
	margin:4px 0 0;
	color:var(--muted);
	font-size:16px
}
.rating-method,.daily-method {
	border-top:1px solid var(--line);
	margin-top:16px
}
.past-years {
	margin-top:16px
}
.cycle-list {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:10px
}
.cycle-card {
	padding:16px 10px;
	border:1px solid var(--line);
	border-radius:9px;
	text-align:center;
	background:var(--bg)
}
.cycle-card[data-active=true] {
	background:var(--green);
	color:#fff;
	border-color:var(--green)
}
.cycle-card>span {
	font-size:14px
}
.cycle-card strong {
	display:block;
	font-size:22px;
	margin:10px 0
}
.cycle-card p {
	font-size:14px
}
.end-actions {
	display:grid;
	gap:10px;
	max-width:660px;
	margin:28px auto
}
.end-actions .text-button {
	justify-self:center
}
.matrix-grid {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:10px
}
.matrix-pillar {
	display:grid;
	gap:7px;
	text-align:center
}
.matrix-pillar>span {
	font-size:14px;
	color:var(--muted)
}
.matrix-cell {
	background:var(--tint,#f1f4f2);
	color:var(--element,var(--muted));
	border-radius:9px;
	min-height:88px;
	display:grid;
	place-content:center;
	gap:2px
}
.matrix-cell strong {
	font-family:serif;
	font-size:32px;
	font-weight:600;
	line-height:1.3
}
.matrix-cell small {
	font-size:14px
}
.matrix-pillar[data-day=true] {
	border-radius:10px;
	outline:2px solid var(--green);
	outline-offset:4px
}
.matrix-label {
	font-size:14px;
	color:var(--green);
	margin-top:16px
}
.pillars {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:8px;
	margin:16px 0
}
.pillar {
	display:grid;
	text-align:center;
	gap:6px;
	border-radius:8px;
	padding:12px 6px;
	background:var(--tint,#f1f4f2)
}
.pillar strong {
	font-family:serif;
	font-size:28px;
	letter-spacing:3px;
	color:var(--element,var(--ink))
}
.pillar span,.pillar small {
	font-size:14px
}
.element-counts {
	display:grid;
	grid-template-columns:repeat(5,minmax(0,1fr));
	gap:4px;
	margin:16px 0
}
.element-count {
	display:grid;
	text-align:center;
	padding:8px 2px;
	background:var(--bg);
	border-radius:6px;
	font-size:14px
}
.day-identities {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:12px
}
.day-identity {
	padding:20px;
	background:var(--tint);
	border-radius:10px;
	text-align:center;
	color:var(--element)
}
.day-identity strong {
	display:block;
	font-family:serif;
	font-size:36px;
	margin:6px 0
}
.day-identity small {
	font-size:14px
}
.relation-strip {
	background:#edf4ef;
	padding:16px;
	border-radius:9px;
	margin-top:14px;
	font-size:16px
}
.couple-element-grid {
	margin-top:20px
}
.comparison-key {
	display:flex;
	gap:18px;
	font-size:14px;
	margin:12px 0 20px;
	color:var(--muted)
}
.comparison-key span:last-child {
	opacity:.7
}
.comparison-pair {
	display:grid;
	gap:7px
}
.comparison-pair meter:last-child {
	opacity:.5
}
.contact-summary {
	display:grid;
	gap:10px;
	margin-top:14px
}
.contact-row {
	padding:14px;
	background:var(--bg);
	border-radius:8px;
	font-size:15px
}
.contact-row strong {
	color:var(--green);
	margin-right:12px
}
.daily-panel {
	margin-top:20px
}
.daily-date-controls {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:9px;
	margin:20px 0
}
.daily-date-controls button {
	border:1px solid var(--line);
	border-radius:11px;
	min-height:130px;
	padding:13px 6px;
	background:var(--bg);
	font-size:15px;
	display:grid;
	align-content:center;
	gap:6px;
	text-align:center
}
.daily-date-controls button strong {
	font-family:serif;
	font-size:24px;
	letter-spacing:2px
}
.daily-date-controls button small {
	font-size:14px
}
.daily-date-controls button[aria-pressed=true] {
	background:var(--ink);
	border-color:var(--ink);
	color:white
}
.daily-date-controls .grade-badge {
	justify-self:center;
	font-size:14px
}
.daily-headline {
	display:flex;
	align-items:center;
	gap:12px;
	padding:16px 0
}
.daily-headline strong {
	font-size:18px;
	line-height:1.6
}
.daily-tasks {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:12px
}
.daily-tasks .reading-block {
	padding:18px;
	background:var(--bg);
	border:0
}
.daily-tasks h3 {
	font-size:17px
}
.daily-tasks p {
	font-size:16px
}
.daily-subtitle {
	margin-top:25px;
	margin-bottom:10px;
	font-size:18px
}
.daily-rhythm {
	border-top:1px solid var(--line)
}
.rhythm-card {
	display:grid;
	grid-template-columns:90px 60px minmax(0,1fr);
	align-items:start;
	gap:14px;
	padding:18px 0;
	border-bottom:1px solid var(--line)
}
.rhythm-card>span {
	font-size:14px;
	color:var(--muted)
}
.rhythm-pillar {
	font-family:serif;
	font-size:23px;
	color:var(--green);
	letter-spacing:1px
}
.rhythm-card h5 {
	font-size:17px;
	margin-bottom:4px
}
.rhythm-card p {
	font-size:15px;
	color:var(--muted)
}
.daily-details {
	margin-top:20px;
	border-top:1px solid var(--line)
}
.daily-hints {
	display:grid;
	grid-template-columns:repeat(4,minmax(0,1fr));
	gap:8px;
	margin:18px 0
}
.hint-card {
	display:grid;
	text-align:center;
	background:var(--bg);
	border-radius:9px;
	padding:14px 8px;
	gap:6px
}
.hint-card span {
	font-size:14px;
	color:var(--muted)
}
.hint-card strong {
	font-size:16px
}
.daily-notice {
	padding-top:14px;
	border-top:1px solid var(--line)
}
.name-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:16px
}
.name-card {
	position:relative;
	background:white;
	border:1px solid var(--line);
	border-radius:14px;
	padding:24px
}
.name-card h3 {
	font-size:28px;
	letter-spacing:1px;
	margin-bottom:8px
}
.name-card .sound-elements {
	font-size:15px;
	color:var(--green);
	margin-bottom:12px
}
.name-card p {
	font-size:16px
}
.name-reasons {
	font-size:14px;
	color:var(--muted);
	padding-left:18px;
	margin:16px 0 0
}
.name-reasons li+li {
	margin-top:6px
}
.child-order {
	font-size:14px!important;
	color:var(--muted);
	margin-bottom:6px
}
.sibling-name-set {
	background:white;
	border:1px solid var(--line);
	border-radius:14px;
	padding:20px;
	margin-bottom:14px
}
.sibling-name-set>summary {
	display:flex;
	gap:14px;
	align-items:start
}
.sibling-name-set>summary strong {
	flex-shrink:0;
	color:var(--green)
}
.sibling-name-set>summary span {
	font-size:16px
}
.sibling-name-set .name-grid {
	margin-top:16px
}
.sibling-name-set .name-card {
	background:var(--bg);
	padding:20px
}
.naming-method h3 {
	margin-top:22px
}
.naming-method .result-section {
	padding:18px
}
.family-reading .reading-block {
	background:var(--bg);
	margin-top:12px
}
dialog {
	width:calc(100% - 32px);
	max-width:620px;
	max-height:86dvh;
	padding:28px;
	border:1px solid var(--line);
	border-radius:18px;
	overscroll-behavior:contain;
	overflow-y:auto;
	box-shadow:0 24px 90px #11201933;
	color:var(--ink);
	background:#fff
}
dialog::backdrop {
	background:#11181680;
	backdrop-filter:blur(3px)
}
body:has(dialog[open]) {
	overflow:hidden;
}
.dialog-top {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	margin-bottom:20px
}
.dialog-top h2 {
	font-size:23px;
	line-height:1.4
}
.close-button {
	width:44px;
	height:44px;
	flex-shrink:0;
	border:1px solid var(--line);
	border-radius:50%;
	font-size:26px
}
dialog h3 {
	font-size:18px;
	margin:22px 0 10px
}
dialog p {
	font-size:15px;
	line-height:1.85
}
#share-dialog {
	margin:auto auto 0;
	border-radius:22px 22px 0 0;
	padding-top:27px
}
#share-dialog:before {
	content:'';
	position:absolute;
	top:10px;
	left:calc(50% - 18px);
	width:36px;
	height:4px;
	background:#d2dbd5;
	border-radius:3px
}
#share-dialog>.dialog-top+p {
	padding:14px;
	background:#eaf3ed;
	border-radius:9px;
	font-size:14px;
	color:var(--green-dark)
}
.share-label {
	display:block;
	font-size:15px;
	font-weight:700;
	margin:18px 0 8px
}
#share-preview {
	height:220px;
	resize:vertical;
	background:var(--bg);
	font-size:15px;
	line-height:1.8
}
.share-help {
	font-size:14px!important;
	color:var(--muted);
	margin:10px 0 18px
}
.share-actions {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px
}
.share-actions .primary {
	grid-column:1/-1
}
.share-actions button {
	font-size:16px;
	min-height:50px
}
#share-status {
	font-size:14px;
	margin-top:12px;
	color:var(--green)
}
#share-status:empty {
	display:none
}
@media(min-width:900px) {
	.intro-layout:has([data-family]),.intro-layout:has([data-couple]) {
		max-width:940px
	}
	.intro-layout:has([data-family]) .intro,.intro-layout:has([data-couple]) .intro {
		padding-top:4px
	}
	.intro-layout:has([data-family]) .element-art,.intro-layout:has([data-couple]) .element-art {
		position:absolute;
		right:4px;
		top:20px
	}
	.family-fields {
		display:grid;
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:16px
	}
	.child-birth-fields>.person:only-child {
		grid-column:1/-1
	}
	.child-birth-fields>.person:only-child {
		display:grid;
		grid-template-columns:1fr 1fr;
		gap:0 18px
	}
	#form-content[data-couple] {
		display:grid;
		grid-template-columns:1fr 1fr;
		gap:0 20px
	}
	#form-content[data-couple]>.form-title {
		grid-column:1/-1
	}
}
@media(max-width:600px) {
	.shell {
		width:calc(100% - 36px)
	}
	.site-header {
		height:68px
	}
	.brand {
		font-size:20px
	}
	.brand-mark {
		width:32px;
		height:32px;
		font-size:23px
	}
	.header-actions {
		gap:2px
	}
	.free-label {
		font-size:14px
	}
	.intro-layout {
		margin-top:30px
	}
	.intro h1 {
		font-size:34px;
		letter-spacing:-1.4px
	}
	.intro-kicker {
		margin-bottom:10px
	}
	.intro {
		padding:0 2px 20px
	}
	.element-art {
		margin:18px 0 16px
	}
	.mode-picker {
		margin-bottom:16px
	}
	.mode-picker button,.mode-picker a {
		font-size:14px;
		min-height:46px
	}
	#fortune-form {
		padding:22px 18px;
		border-radius:14px
	}
	.form-title {
		font-size:20px
	}
	.person {
		padding:16px 12px
	}
	.person.single {
		padding:0
	}
	.field {
		margin-bottom:16px
	}
	.privacy-line {
		font-size:14px;
		align-items:start
	}
	.privacy-line svg {
		margin-top:4px
	}
	.results {
		margin-top:18px
	}
	.result-header {
		height:64px
	}
	.result-heading {
		padding:24px 20px;
		border-radius:14px
	}
	.result-heading h2 {
		font-size:27px;
		letter-spacing:-.8px
	}
	.result-lead {
		font-size:16px
	}
	.result-section,.summary-panel,.results>details,.results>div:has(>details) {
		padding:22px 18px;
		margin-top:16px
	}
	.result-section>h3,h3 {
		font-size:20px
	}
	.reading-grid,.family-summary,.children-summary,.couple-charts,.topic-people,.daily-tasks {
		grid-template-columns:1fr;
		gap:12px
	}
	.reading-grid .reading-block,.reading-block {
		padding:20px
	}
	.element-row {
		grid-template-columns:76px minmax(0,1fr) 30px;
		gap:8px
	}
	.element-label,.element-row b {
		font-size:14px
	}
	.fortune-accordion>summary {
		display:grid;
		grid-template-columns:auto 1fr 18px;
		gap:5px 10px
	}
	.fortune-accordion summary span {
		font-size:14px
	}
	.fortune-accordion>summary::after {
		font-size:20px
	}
	.fortune-body p {
		font-size:17px
	}
	.topic-person {
		padding:17px
	}
	.matrix-grid {
		gap:8px
	}
	.matrix-cell {
		min-height:76px
	}
	.matrix-cell strong {
		font-size:29px
	}
	.matrix-pillar>span {
		font-size:14px
	}
	.year-top {
		grid-template-columns:73px 43px minmax(0,1fr);
		gap:8px
	}
	.year-short {
		font-size:14px
	}
	.cycle-list {
		grid-template-columns:1fr 1fr
	}
	.daily-date-controls {
		gap:7px
	}
	.daily-date-controls button {
		min-height:124px;
		padding:10px 4px
	}
	.daily-date-controls button strong {
		font-size:23px
	}
	.daily-headline {
		align-items:start
	}
	.daily-headline strong {
		font-size:17px
	}
	.rhythm-card {
		grid-template-columns:72px 47px minmax(0,1fr);
		gap:10px
	}
	.rhythm-pillar {
		font-size:22px
	}
	.daily-hints {
		grid-template-columns:1fr 1fr
	}
	.hint-card strong {
		font-size:16px
	}
	.name-grid {
		grid-template-columns:1fr
	}
	.name-card {
		padding:22px
	}
	.name-card h3 {
		font-size:28px
	}
	.pillars {
		grid-template-columns:1fr 1fr
	}
	.element-counts {
		gap:3px
	}
	.element-count {
		font-size:14px
	}
	.sibling-name-set {
		padding:18px
	}
	.sibling-name-set>summary {
		display:block
	}
	.sibling-name-set>summary span {
		display:block;
		margin-top:6px
	}
	.site-footer {
		display:grid;
		gap:0;
		padding:28px 0
	}
	.site-footer>span {
		display:none
	}
	dialog {
		padding:23px 18px
	}
	.dialog-top h2 {
		font-size:21px
	}
	.share-actions {
		gap:8px
	}
	.share-actions button {
		padding:12px 5px;
		font-size:15px
	}
	.day-identity {
		padding:16px 10px
	}
}
@media(prefers-reduced-motion:no-preference) {
	button {
		transition:background .15s,color .15s
	}
	.result-heading {
		animation:appear .28s ease-out
	}
	@keyframes appear {
		from {
			opacity:0;
			transform:translateY(6px)
		}
		to {
			opacity:1;
			transform:none
		}
	}
}
@media print {
	.intro-layout,.site-header,.result-header,.site-footer,.end-actions,.skip,dialog {
		display:none!important
	}
	.app-frame {
		max-width:none;
		box-shadow:none
	}
	.shell {
		width:100%
	}
	.results {
		max-width:none
	}
	.result-heading {
		background:#fff;
		color:#111;
		border:1px solid #aaa
	}
	.result-caption,.result-lead,.fun-notice {
		color:#333
	}
	.result-section {
		break-inside:avoid
	}
}
.hero-seal {
	float:right;
	display:grid;
	gap:6px;
	text-align:center;
	background:var(--red);
	border-radius:10px;
	padding:12px 15px;
	margin:0 0 15px 20px;
	min-width:84px
}
.hero-seal span {
	font-size:14px;
	color:#fff3ec
}
.hero-seal strong {
	font-family:serif;
	font-size:31px;
	line-height:1.4;
	font-weight:600
}
.rhythm-card>span {
	white-space:pre-line
}
@media(max-width:600px) {
	.hero-seal {
		padding:9px 10px;
		min-width:67px;
		margin-left:12px
	}
	.hero-seal strong {
		font-size:27px
	}
	.hero-seal span {
		font-size:14px
	}
}
/* 추가 해설은 펼친 구역 안에서 표와 짧은 행동 안내로 읽습니다. */
.result-deep {
	margin-top:20px;
	padding:22px 26px;
	background:white;
	border:1px solid var(--line);
	border-radius:14px;
}
.result-deep>summary,.element-method>summary,.week-view>summary {
	font-size:18px;
}
.deep-intro {
	font-size:16px;
	margin:10px 0 18px;
}
.activity-bars {
	display:grid;
	gap:14px;
	margin:20px 0;
}
.activity-row {
	display:grid;
	grid-template-columns:105px minmax(0,1fr) 45px;
	align-items:center;
	gap:12px;
	font-size:15px;
}
.activity-row>b {
	text-align:right;
	font-size:14px;
}
.activity-row meter {
	appearance:none;
	-webkit-appearance:none;
	width:100%;
	height:12px;
	background:#edf1ee;
	border:0;
	border-radius:20px;
	overflow:hidden;
}
.activity-row meter::-webkit-meter-bar {
	background:#edf1ee;
	border:0;
}
.activity-row meter::-webkit-meter-optimum-value {
	background:var(--element);
	border-radius:20px;
}
.activity-row meter::-moz-meter-bar {
	background:var(--element);
}
.result-deep .reading-block,.week-day .reading-block {
	margin:12px 0;
	padding:18px;
	background:var(--bg);
	border:0;
}
.result-deep .reading-block h3,.week-day .reading-block h3 {
	font-size:17px;
}
.result-deep .reading-block p,.week-day .reading-block p {
	font-size:16px;
}
.comparison-table {
	width:100%;
	border-collapse:collapse;
	table-layout:fixed;
	margin:16px 0;
	font-size:15px;
}
.comparison-table th,.comparison-table td {
	padding:13px 7px;
	border-bottom:1px solid var(--line);
	text-align:center;
	overflow-wrap:anywhere;
}
.comparison-table thead th {
	color:var(--muted);
	background:var(--bg);
	font-size:14px;
}
.comparison-table th:first-child {
	text-align:left;
	width:40%;
}
.element-comparison tbody th {
	color:var(--element);
}
.element-method,.activity-method,.week-view,.name-fit {
	border-top:1px solid var(--line);
	margin-top:18px;
	padding-top:6px;
}
.week-day {
	border-bottom:1px solid var(--line);
}
.week-day>summary {
	display:grid;
	grid-template-columns:90px 43px minmax(0,1fr);
	align-items:center;
	gap:12px;
	padding:17px 0;
}
.week-day time {
	font-size:15px;
}
.week-title {
	font-weight:400;
	font-size:15px;
}
.week-focus {
	font-size:16px;
	color:var(--green);
}
.name-fit>summary {
	font-size:15px;
	color:var(--green);
}
.name-fit dt,.name-fit dd {
	font-size:15px;
}
@media(max-width:600px) {
	.result-deep {
		padding:18px;
		margin-top:16px;
	}
	.activity-row {
		grid-template-columns:90px minmax(0,1fr) 36px;
		gap:8px;
		font-size:14px;
	}
	.week-day>summary {
		grid-template-columns:77px 40px minmax(0,1fr);
		gap:8px;
	}
	.week-day time,.week-title {
		font-size:14px;
	}
	.comparison-table {
		font-size:14px;
	}
	.comparison-table th,.comparison-table td {
		padding:12px 5px;
	}
}
/* 공유받은 결과도 같은 결과 카드와 읽기 흐름으로 제공합니다. */
.shared-header-link {
	font-size:15px;
	font-weight:700;
	text-decoration:none;
	min-height:44px;
	display:flex;
	align-items:center;
}
.shared-banner {
	max-width:940px;
	margin:30px auto 0;
}
.shared-banner>span {
	font-size:14px;
	font-weight:700;
	color:var(--green);
}
.shared-banner>p {
	margin-top:6px;
	font-size:17px;
	color:var(--muted);
}
.shared-page .result-heading h1 {
	font-size:34px;
	line-height:1.4;
	letter-spacing:-1px;
}
.shared-page .result-section>h2 {
	font-size:21px;
	line-height:1.5;
	margin-bottom:18px;
}
.shared-profiles {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:16px;
}
.shared-profiles .result-section {
	margin-top:20px;
}
.shared-page:not(.full-saju) .element-row {
	grid-template-columns:72px minmax(0,1fr) 30px;
	gap:8px;
}
.shared-activity {
	margin-top:16px;
	padding-top:8px;
	border-top:1px solid var(--line);
}
.shared-activity-list {
	display:grid;
	gap:9px;
}
.shared-activity-list>div {
	display:flex;
	align-items:center;
	justify-content:space-between;
	gap:12px;
	padding:10px 12px;
	background:var(--bg);
	border-radius:8px;
	font-size:15px;
}
.shared-rhythm {
	display:grid;
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:12px;
}
.shared-rhythm .reading-block {
	padding:16px;
	background:var(--bg);
	border:0;
}
.shared-rhythm h3 {
	font-size:16px;
}
.shared-rhythm p {
	font-size:15px;
}
.shared-name-set {
	margin-top:24px;
}
.shared-name-set>h3 {
	color:var(--green);
	margin-bottom:12px;
}
.shared-snapshot-note {
	margin:24px 4px;
	font-size:14px;
	color:var(--muted);
}
.shared-cta {
	position:sticky;
	bottom:0;
	z-index:2;
	max-width:940px;
	margin:26px auto 0;
	padding:18px 24px 14px;
	background:#f8faf9f5;
	border-top:1px solid var(--line);
	text-align:center;
	backdrop-filter:blur(10px);
}
.shared-cta p {
	font-size:17px;
	font-weight:700;
	margin-bottom:12px;
}
.shared-cta .primary {
	max-width:520px;
	margin:auto;
}
.shared-cta>span {
	display:block;
	font-size:14px;
	color:var(--muted);
	margin-top:8px;
}
.shared-error,.shared-loading {
	padding:42px 26px;
	background:white;
	border:1px solid var(--line);
	border-radius:16px;
}
.shared-error h1,.shared-loading h1 {
	font-size:25px;
	line-height:1.5;
	margin:20px 0 12px;
}
.shared-error p {
	font-size:17px;
	color:var(--muted);
}
.share-card-preview {
	padding:22px;
	margin-top:18px;
	border-radius:13px;
	background:var(--ink);
	color:white;
}
.share-card-preview h3 {
	font-size:23px;
	line-height:1.5;
	margin-bottom:12px;
}
.share-card-preview>p:not(.result-caption) {
	color:#e1eae5;
	font-size:15px;
}
.share-page-preview {
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:48px;
	margin-top:8px;
	font-size:15px;
	font-weight:700;
	text-underline-offset:4px;
}
#share-dialog .share-actions>button {
	grid-column:1/-1;
}
#share-dialog .share-actions:has(#native-share[hidden]) #copy-share {
	background:var(--green);
	color:white;
}
#share-summary {
	margin-top:18px;
	border-top:1px solid var(--line);
	padding-top:4px;
}
#share-summary>summary {
	font-size:15px;
	color:var(--muted);
}
.summary-actions {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:10px;
	margin-top:12px;
}
.summary-actions button {
	font-size:15px;
	padding:12px 8px;
}
.share-url {
	font-size:14px;
	margin:10px 0;
	min-height:46px;
}
@media(max-width:600px) {
	.shared-banner {
		margin-top:24px;
	}
	.shared-page .result-heading h1 {
		font-size:27px;
	}
	.shared-page .result-section>h2 {
		font-size:20px;
	}
	.shared-profiles,.shared-rhythm {
		grid-template-columns:1fr;
		gap:0;
	}
	.shared-rhythm {
		gap:10px;
	}
	.shared-cta {
		padding:14px 0 12px;
	}
	.shared-cta p {
		font-size:16px;
	}
	.share-card-preview {
		padding:18px;
	}
}
@media print {
	.shared-cta,.shared-banner {
		display:none!important;
	}
}
.shared-identities {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
	gap:10px;
	margin-top:18px;
}
.shared-identities>div {
	display:grid;
	gap:5px;
	padding:14px;
	border:1px solid #ffffff35;
	border-radius:9px;
}
.shared-identities strong {
	font-size:18px;
}
.shared-identities span {
	font-size:14px;
	color:#d1ded6;
}
.share-identity-option {
	margin-top:10px;
	font-size:16px;
	font-weight:700;
}
/* 사주와 일상 탐색은 두 개의 단순한 진입점으로 구분합니다. */
.service-nav {
	display:flex;
	gap:24px;
	max-width:940px;
	border-bottom:1px solid var(--line);
}
.service-nav a {
	min-height:50px;
	display:flex;
	align-items:center;
	color:var(--muted);
	text-decoration:none;
	font-size:16px;
	font-weight:700;
	border-bottom:2px solid transparent;
}
.service-nav a[aria-current=page] {
	color:var(--green);
	border-bottom-color:var(--green);
}
.life-hub,.life-form-view,.life-result-view {
	max-width:760px;
	margin:38px auto 0;
}
.life-hub h1,.life-topic-intro h1 {
	font-size:40px;
	line-height:1.35;
	letter-spacing:-1.6px;
}
.life-hub-lead {
	font-size:17px;
	color:var(--muted);
	margin-top:18px;
}
.life-tool-list {
	margin:28px 0 22px;
	background:white;
	border:1px solid var(--line);
	border-radius:16px;
	overflow:hidden;
}
.life-tool {
	display:grid;
	grid-template-columns:48px minmax(0,1fr) 24px;
	align-items:center;
	gap:16px;
	width:100%;
	text-align:left;
	padding:24px;
}
.life-tool+.life-tool {
	border-top:1px solid var(--line);
}
.life-tool:hover {
	background:#eef5f0;
}
.life-tool-number {
	font-family:serif;
	font-size:28px;
	color:var(--red);
}
.life-tool-text {
	display:grid;
	gap:7px;
}
.life-tool-text strong {
	font-size:21px;
	letter-spacing:-.6px;
}
.life-tool-text>span {
	font-size:15px;
	color:var(--muted);
}
.life-tool-arrow {
	font-size:23px;
	color:var(--green);
}
.life-form-view {
	max-width:660px;
}
.life-topic-intro {
	margin:18px 0 26px;
}
.life-topic-intro>p:last-child {
	font-size:16px;
	color:var(--muted);
	margin-top:14px;
}
#life-form {
	padding:28px;
	background:white;
	border:1px solid var(--line);
	border-radius:16px;
}
.life-question {
	border:0;
	padding:0;
	margin:0 0 26px;
	min-width:0;
}
.life-question legend {
	font-size:18px;
	font-weight:700;
	line-height:1.6;
	padding:0;
	margin-bottom:12px;
}
.life-options {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:9px;
}
.life-option {
	position:relative;
	min-width:0;
	cursor:pointer;
}
.life-option input {
	position:absolute;
	left:12px;
	top:12px;
	width:1px;
	height:1px;
	opacity:0;
}
.life-option span {
	display:flex;
	align-items:center;
	justify-content:center;
	min-height:60px;
	padding:12px;
	border:1px solid #cad6ce;
	border-radius:10px;
	text-align:center;
	font-size:16px;
	line-height:1.6;
}
.life-option input:checked+span {
	background:#e7f1eb;
	border-color:var(--green);
	color:var(--green);
	font-weight:700;
}
.life-option input:focus-visible+span {
	outline:3px solid var(--green);
	outline-offset:2px;
}
.life-option input[aria-invalid=true]+span {
	border-color:var(--red);
}
.life-progress {
	text-align:right;
	font-size:14px;
	font-weight:700;
	color:var(--green);
	margin-bottom:18px;
}
.life-pair-fields {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:16px;
}
#life-criteria .life-options {
	grid-template-columns:repeat(3,minmax(0,1fr));
}
.life-extra {
	margin:6px 0 24px;
	border-top:1px solid var(--line);
	padding-top:8px;
}
.life-extra>summary {
	font-size:16px;
	color:var(--muted);
}
#message {
	min-height:150px;
	resize:vertical;
}
.life-result-view {
	max-width:940px;
	margin-top:22px;
}
.life-result-toolbar {
	display:flex;
	align-items:center;
	justify-content:space-between;
}
.life-report {
	margin-top:16px;
}
.life-report .result-heading h1 {
	font-size:32px;
	line-height:1.45;
	letter-spacing:-1px;
}
.life-local-context {
	margin-top:18px;
	padding:14px 16px;
	border:1px solid #ffffff35;
	border-radius:9px;
}
.life-local-context p {
	font-size:16px;
	color:#ecf4ef;
}
.life-metrics {
	display:grid;
	grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
	gap:12px;
	margin-top:20px;
}
.life-metrics article {
	display:grid;
	gap:12px;
	padding:24px 20px;
	background:white;
	border:1px solid var(--line);
	border-radius:13px;
}
.life-metrics p {
	font-size:16px;
	font-weight:700;
}
.life-metrics strong {
	font-size:32px;
	line-height:1.4;
	font-variant-numeric:tabular-nums;
	letter-spacing:-1px;
	color:var(--green);
	overflow-wrap:anywhere;
}
.life-metrics span {
	font-size:14px;
	color:var(--muted);
}
.life-reading-grid {
	display:grid;
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:14px;
	margin-top:20px;
}
.life-report h2 {
	font-size:21px;
	line-height:1.55;
	letter-spacing:-.5px;
}
.life-report .reading-block p {
	font-size:17px;
	line-height:1.85;
}
.life-report .result-section>h2 {
	margin-bottom:18px;
}
.life-next {
	margin-top:20px;
	padding:24px 26px;
	background:#e7f1eb;
	border:1px solid #c9ddd0;
	border-radius:13px;
}
.life-next p {
	font-size:17px;
	line-height:1.85;
	margin-top:12px;
}
.life-table th:first-child {
	width:45%;
}
.life-original p,.life-method p {
	font-size:16px;
	line-height:1.9;
}
#life-share-dialog {
	margin:auto auto 0;
	border-radius:22px 22px 0 0;
}
#life-share-dialog .share-actions>button {
	grid-column:1/-1;
}
.life-share-notice {
	padding:14px;
	background:#eaf3ed;
	border-radius:9px;
	color:var(--green-dark);
	font-size:14px;
}
#life-share-summary {
	min-height:200px;
	font-size:15px;
	line-height:1.8;
}
#life-summary-details {
	margin-top:18px;
	border-top:1px solid var(--line);
	padding-top:6px;
}
#life-summary-details>summary {
	font-size:15px;
	color:var(--muted);
}
#life-share-status {
	font-size:14px;
	color:var(--green);
	margin-top:12px;
}
#life-share-status:empty {
	display:none;
}
@media(max-width:600px) {
	.service-nav {
		gap:24px;
	}
	.service-nav a {
		min-height:46px;
		font-size:15px;
	}
	.life-hub,.life-form-view {
		margin-top:28px;
	}
	.life-hub h1,.life-topic-intro h1 {
		font-size:32px;
	}
	.life-tool {
		grid-template-columns:30px minmax(0,1fr) 20px;
		gap:12px;
		padding:20px 17px;
	}
	.life-tool-number {
		font-size:24px;
	}
	.life-tool-text strong {
		font-size:19px;
	}
	.life-tool-text>span {
		font-size:14px;
	}
	#life-form {
		padding:22px 17px;
	}
	.life-options {
		gap:8px;
	}
	.life-option span {
		font-size:15px;
		padding:11px 8px;
		min-height:64px;
	}
	.life-question legend {
		font-size:17px;
	}
	.life-pair-fields {
		grid-template-columns:1fr;
		gap:0;
	}
	#life-criteria .life-options {
		grid-template-columns:1fr;
	}
	#life-criteria .life-option span {
		min-height:48px;
	}
	.life-report .result-heading h1 {
		font-size:26px;
	}
	.life-reading-grid {
		grid-template-columns:1fr;
		gap:12px;
	}
	.life-report h2 {
		font-size:20px;
	}
	.life-metrics {
		grid-template-columns:1fr;
	}
	.life-metrics article {
		padding:20px;
	}
	.life-next {
		padding:22px 18px;
	}
}
@media print {
	.service-nav,.life-result-toolbar,.life-tool-list {
		display:none!important;
	}
}
.received-sharing {
	max-width:940px;
}
#received-share-status {
	font-size:14px;
	color:var(--green-dark);
	padding:12px 14px;
	margin-top:14px;
	background:#e7f1eb;
	border-radius:9px;
}
#received-share-status:empty {
	display:none;
}

/* 공유된 전체 결과는 본인 결과의 카드와 간격을 그대로 사용합니다. */
.full-saju .site-header,.full-saju .shared-banner,.full-saju .shared-cta {
	display:none;
}
.full-saju .result-header {
	display:flex;
}
.full-saju .result-header a {
	text-decoration:none;
}

#snapshot-nav { display:none; }
.full-saju #snapshot-nav { display:flex; }

/* 입력을 기억하고 아이별 전체 결과를 함께 읽는 구성입니다. */
.input-memory { font-size:14px; color:var(--muted); margin:0 0 20px; }
.child-all-fields { margin:20px 0; }
.child-report { margin:24px 0; background:white; border:1px solid var(--line); border-radius:18px; overflow:hidden; }
.child-report>summary { padding:20px 24px; font-size:21px; font-weight:700; background:#eaf1ed; }
.child-report-body.results { margin:0; padding:24px; max-width:none; }
.child-report .result-heading h3 { font-size:30px; line-height:1.4; color:white; margin:0 100px 14px 0; }
.children-overview-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:12px; }
.child-overview-card { padding:18px; border:1px solid var(--line); border-radius:12px; }
.child-overview-card>strong,.child-overview-card>span { display:block; margin-bottom:12px; }
.child-overview-card>strong { font-size:18px; }
.child-overview-card>span { font-size:15px; line-height:1.7; }
.child-overview-card>small { display:inline-block; margin-right:8px; font-size:14px; }
.lifestyle-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:20px 0; }
.lifestyle-card { padding:20px; border:1px solid var(--line); border-radius:12px; background:var(--bg); }
.lifestyle-card h4 { font-size:17px; margin-bottom:12px; }
.lifestyle-card p { font-size:14px; line-height:1.7; margin-top:12px; }
.lifestyle-digits { font-size:30px; color:var(--green); }
.color-chips,.phone-endings { display:flex; gap:10px; flex-wrap:wrap; }
.color-chip { display:inline-flex; align-items:center; gap:8px; padding:7px 11px; background:white; border:1px solid var(--line); border-radius:8px; font-size:16px; }
.color-chip:before { content:''; width:18px; height:18px; border-radius:50%; background:var(--green); border:1px solid #0002; }
.color-chip[data-element='1']:before { background:#c8402b; }
.color-chip[data-element='2']:before { background:#d4ae58; }
.color-chip[data-element='3']:before { background:#f7f7f4; }
.color-chip[data-element='4']:before { background:#263953; }
.phone-endings strong { font-size:22px; padding:10px 16px; border-radius:9px; background:#e7f0eb; font-variant-numeric:tabular-nums; }
.lifestyle-method { margin-top:20px; }
.hanja-preview { margin:18px 0; padding:16px; border-radius:10px; background:#f3f6f3; }
.hanja-preview>strong { display:block; font-family:serif; font-size:28px; letter-spacing:3px; margin-bottom:8px; }
.hanja-preview>span,.hanja-preview>small { display:block; font-size:14px; line-height:1.8; }
.hanja-preview>small { margin-top:8px; color:var(--green); }
.hanja-option { padding:18px 0; border-top:1px solid var(--line); }
.hanja-option h5 { font-size:19px; margin-bottom:14px; }
.hanja-option>strong { display:block; font-size:16px; margin-top:12px; }
.hanja-option>p { margin-top:5px; font-size:15px; line-height:1.8; }
.hanja-unavailable { font-size:14px; color:var(--muted); margin-top:16px; }
.name-fit h4 { margin:22px 0 12px; font-size:18px; }
@media (max-width:600px) {
 .child-report-body.results { padding:14px; }
 .child-report>summary { padding:17px; font-size:19px; }
 .child-report .result-heading h3 { font-size:25px; margin-right:80px; }
 .lifestyle-grid { grid-template-columns:1fr; }
 .children-overview-grid { grid-template-columns:1fr; }
}

/* 결과의 정보량은 접힌 상세에 두고 확인한 자료를 연결합니다. */
.research-footer-link { font-size:14px; color:var(--muted); padding:12px 0; }
.research-links { display:flex; flex-wrap:wrap; gap:9px 16px; margin-top:16px; }
.research-link { font-size:14px; line-height:1.7; color:var(--green); text-underline-offset:3px; overflow-wrap:anywhere; }
.knowledge-item { margin:12px 0; padding:14px 0; border-top:1px solid var(--line); }
.knowledge-item>summary { font-size:17px; font-weight:700; }
.knowledge-value { display:block; font-size:17px; margin:14px 0 10px; color:var(--green-dark); line-height:1.8; }
.knowledge-item>p { font-size:16px; line-height:1.9; }
.month-card { border:1px solid var(--line); border-radius:12px; margin:12px 0; padding:0 20px; }
.month-card>summary { display:grid; grid-template-columns:100px 48px minmax(0,1fr); gap:12px; align-items:center; padding:18px 0; }
.month-range { font-size:15px; color:var(--muted); text-align:right; }
.month-card h4 { font-size:19px; margin:14px 0; }
.month-boundary { font-size:14px; color:var(--muted); line-height:1.8; }
.month-reading { padding:16px 0; border-top:1px solid var(--line); margin-top:14px; }
.month-reading h5 { font-size:17px; margin:10px 0; }
.month-method { margin-top:16px; }
.research-main { max-width:940px; padding-bottom:30px; }
.research-intro { margin:40px 0 24px; }
.research-intro h1 { font-size:38px; margin:12px 0 16px; letter-spacing:-1px; }
.research-intro>p:last-child { font-size:18px; color:var(--muted); line-height:1.8; }
.research-counts { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }
.research-counts>div { border:1px solid var(--line); border-radius:14px; background:white; padding:22px; }
.research-counts strong { display:block; font-size:32px; color:var(--green); margin-bottom:8px; }
.research-counts span { font-size:15px; line-height:1.6; }
.research-scope { font-size:15px; color:var(--muted); margin:20px 0; line-height:1.9; }
.research-implementation li { margin:12px 0 12px 20px; font-size:16px; line-height:1.8; }
.research-implementation>p,.calendar-audit>p { font-size:15px; line-height:1.9; margin:18px 0; }
.audit-table-wrap { overflow:auto; max-width:100%; margin:18px 0; }
.audit-table-wrap table { min-width:500px; }
.calendar-audit>a { font-size:15px; color:var(--green); }
.research-filters { display:grid; grid-template-columns:2fr 1fr 1fr; gap:14px; margin:32px 0 18px; }
.research-filters label { display:grid; gap:9px; font-size:15px; font-weight:700; }
.research-filters input,.research-filters select { width:100%; min-width:0; }
.research-list-heading { display:flex; justify-content:space-between; gap:14px; align-items:center; margin:22px 0; flex-wrap:wrap; }
.research-list-heading p,.research-download { font-size:14px; line-height:1.8; }
.research-download { color:var(--green); }
.source-card { background:white; border:1px solid var(--line); border-radius:13px; margin:14px 0; padding:0 22px; scroll-margin-top:20px; }
.source-card>summary { padding:20px 0; }
.source-card>summary>strong { display:block; font-size:18px; line-height:1.7; margin:10px 0; }
.source-badges { display:flex; gap:8px; flex-wrap:wrap; }
.source-badges>span { display:inline-block; font-size:14px; background:#eaf1ed; color:var(--green-dark); padding:4px 8px; border-radius:5px; }
.source-byline,.source-meta { font-size:14px; color:var(--muted); line-height:1.8; overflow-wrap:anywhere; }
.source-body { padding:0 0 22px; }
.source-body h3 { font-size:17px; margin:22px 0 8px; }
.source-body p { font-size:16px; line-height:1.9; }
.source-body a { display:inline-block; margin-top:20px; font-size:16px; color:var(--green); }
.research-empty { padding:32px 0; font-size:17px; color:var(--muted); }
@media(max-width:600px) {
 .month-card { padding:0 14px; }
 .month-card>summary { grid-template-columns:minmax(0,1fr) auto; gap:8px; }
 .month-card>summary>strong { min-width:0; overflow-wrap:anywhere; }
 .month-range { grid-column:1/-1; text-align:left; overflow-wrap:anywhere; }
 .research-filters { grid-template-columns:1fr 1fr; }
 .research-filters label:first-child { grid-column:1/-1; }
 .research-counts>div { padding:17px; }
 .research-counts strong { font-size:28px; }
 .source-card { padding:0 16px; }
 .research-intro h1 { font-size:32px; }
}

.share-more-actions { grid-column:1/-1; display:flex; justify-content:center; gap:24px; flex-wrap:wrap; }
.life-result-toolbar { flex-wrap:wrap; }

.name-grid { align-items:start; }
.name-choices>.surname-hanja-field { grid-column:1/-1; }
.intro-lead { margin:16px 0 0; font-size:17px; line-height:1.8; color:var(--muted); }
.public-info { margin:22px 0 8px; }
.service-info { padding:18px 20px; border:1px solid var(--line); border-radius:12px; background:var(--paper); }
.service-info>summary { color:var(--green); font-size:16px; }
.service-info h2 { margin:24px 0 12px; font-size:21px; }
.service-info h3 { margin:20px 0 8px; font-size:18px; }
.service-info p,.service-info li { font-size:16px; line-height:1.9; }
.service-info ul { padding-left:22px; }
.compare-main { max-width:940px; padding-bottom:40px; }
.compare-main>h1 { font-size:36px; line-height:1.45; margin:28px 0 20px; }
.compare-lead { font-size:19px; line-height:1.9; }
.compare-main>.result-section { padding:28px; margin-top:24px; }
.compare-main h2 { font-size:24px; margin-bottom:18px; }
.compare-main p,.compare-main li { font-size:17px; line-height:1.95; }
.compare-main ul { padding-left:23px; }
.compare-main p+p { margin-top:18px; }
.compare-sources { display:flex; gap:18px; flex-wrap:wrap; }
.compare-services { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:22px; }
.compare-services a { border:1px solid var(--line); border-radius:10px; padding:16px; text-decoration:none; }
.compare-breadcrumb { margin-top:24px; font-size:15px; color:var(--muted); }
@media(max-width:600px){
 .service-info { padding:16px; }
 .compare-main>h1 { font-size:29px; }
 .compare-main>.result-section { padding:22px 18px; }
 .compare-main h2 { font-size:22px; }
 .compare-services { grid-template-columns:1fr; }
}
.name-grid:has(.name-fit[open]) { grid-template-columns:1fr; }
.name-card-story { margin:18px 0; line-height:1.9; }
.name-suri-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; margin:12px 0 18px; }
.name-suri-summary>div { padding:12px; border-radius:9px; background:#f3f6f3; }
.name-suri-summary span,.name-suri-summary small { display:block; font-size:14px; }
.name-suri-summary strong { display:block; font-size:22px; color:var(--green); }
.name-fit { text-align:left; }
.name-reading-section { padding:18px 0; border-top:1px solid var(--line); }
.name-reading-section p,.name-fit .name-meaning-story { font-size:16px; line-height:1.95; }
.name-meaning-story { padding:18px; background:#f2f6f3; border-radius:10px; }
.name-letter-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:20px 0; }
.name-letter { min-width:0; padding:18px 14px; border:1px solid var(--line); border-radius:10px; background:white; }
.name-letter-char { display:block; font-family:serif; font-size:38px; line-height:1.3; margin-bottom:12px; color:var(--green); }
.name-letter b { display:block; font-size:17px; }
.name-letter p { margin-top:12px; font-size:16px; line-height:1.85; }
.name-letter small { display:block; margin-top:12px; font-size:14px; color:var(--muted); }
.name-four-grids { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.name-grid-reading { padding:18px; border:1px solid var(--line); border-radius:10px; background:#fafbf9; }
.name-grid-stage { font-size:15px; color:var(--muted); margin:0 0 6px; }
.name-grid-reading>strong { font-size:21px; color:var(--green-dark); }
.name-grid-reading>p:last-child { font-size:16px; line-height:1.95; margin-top:12px; }
.stroke-formula { font-size:14px; font-variant-numeric:tabular-nums; margin-top:6px; color:var(--muted); }
@media(max-width:600px) {
 .name-letter-row,.name-four-grids { grid-template-columns:1fr; }
 .name-meaning-story,.name-grid-reading { padding:16px; }
}
