:root{--ink: #201d43;--ink-soft: #4a466e;--ink-faint: #8481a3;--paper: #faf8f3;--paper-raised: #ffffff;--line: #e7e2d6;--gold: #b0894f;--gold-soft: #d9c7a6;--lavender: #eceaf4;--lavender-deep: #dcd8ef;--accent-circle: #4f7cac;--accent-square: #6a8d73;--accent-triangle: #c0894b;--accent-s: #8a5a83;--danger: #b4544b;--shadow-sm: 0 1px 2px rgba(32, 29, 67, .06), 0 2px 8px rgba(32, 29, 67, .05);--shadow-md: 0 8px 30px rgba(32, 29, 67, .1);--shadow-lg: 0 24px 60px rgba(32, 29, 67, .16);--radius: 14px;--radius-lg: 22px;--font-serif: "Hahmlet", "Nanum Myeongjo", Georgia, "Times New Roman", serif;--font-sans: "Pretendard", "Pretendard Variable", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--page-max: 940px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-sans);font-weight:400;color:var(--ink);background:var(--paper);background-image:radial-gradient(1200px 600px at 12% -8%,var(--lavender) 0%,transparent 55%),radial-gradient(1000px 700px at 108% 12%,#f0eef8 0%,transparent 50%);background-attachment:fixed;line-height:1.65;min-height:100vh;letter-spacing:-.005em;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select{-webkit-user-select:text;user-select:text}img{-webkit-user-drag:none;user-drag:none}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:600;line-height:1.3;color:var(--ink)}button{font-family:inherit;cursor:pointer}a{color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}.app-shell{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px clamp(18px,5vw,48px);max-width:var(--page-max);margin:0 auto;width:100%}.brand{display:flex;align-items:baseline;gap:10px;text-decoration:none}.brand__mark{font-family:var(--font-serif);font-size:1.4rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}.brand__sub{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}.app-main{flex:1;width:100%;max-width:var(--page-max);margin:0 auto;padding:clamp(16px,4vw,40px) clamp(18px,5vw,48px) 72px}.app-footer{text-align:center;font-size:.72rem;letter-spacing:.12em;color:var(--ink-faint);padding:28px 16px 36px}.card{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:clamp(22px,5vw,44px)}.eyebrow{font-size:.74rem;letter-spacing:.24em;text-transform:uppercase;color:var(--gold);font-weight:500}.lede{color:var(--ink-soft);font-size:1.02rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:999px;padding:13px 24px;font-size:.95rem;font-weight:500;white-space:nowrap;transition:transform .15s ease,box-shadow .2s ease,background .2s ease,border-color .2s ease,opacity .2s ease}.btn--primary{background:var(--ink);color:#fff;box-shadow:var(--shadow-sm)}.btn--primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn--ghost{background:transparent;border-color:var(--line);color:var(--ink-soft)}.btn--ghost:hover{border-color:var(--gold-soft);color:var(--ink)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.btn--wide{min-width:220px}.start-actions{margin-top:26px;display:flex;flex-direction:column;align-items:center;gap:14px}.start-actions__sub{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}.send-note{font-size:.82rem;color:var(--ink-soft);text-align:center}.send-note--error{color:var(--danger)}.stepper{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:clamp(20px,5vw,36px);flex-wrap:wrap}.stepper__item{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--ink-faint)}.stepper__dot{width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:.78rem;background:var(--paper-raised)}.stepper__item--active{color:var(--ink);font-weight:500}.stepper__item--active .stepper__dot{background:var(--ink);color:#fff;border-color:var(--ink)}.stepper__item--done .stepper__dot{background:var(--gold);color:#fff;border-color:var(--gold)}.stepper__sep{width:22px;height:1px;background:var(--line)}.progress{display:flex;flex-direction:column;gap:8px;margin-bottom:26px}.progress__meta{display:flex;justify-content:space-between;font-size:.82rem;color:var(--ink-faint)}.progress__track{height:6px;border-radius:999px;background:var(--lavender-deep);overflow:hidden}.progress__fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--gold-soft),var(--gold));transition:width .4s cubic-bezier(.4,0,.2,1)}.hero{text-align:center;padding:clamp(20px,6vw,48px) 0 8px}.hero h1{font-size:clamp(2.4rem,7vw,3.9rem);font-weight:600;letter-spacing:.06em}.hero__rule{width:64px;height:2px;background:var(--gold);margin:20px auto}.hero__tagline{max-width:34rem;margin:0 auto 14px;font-family:var(--font-serif);font-size:clamp(1.05rem,2.6vw,1.3rem);color:var(--ink);word-break:keep-all}.hero__desc{max-width:32rem;margin:0 auto;color:var(--ink-soft);line-height:1.9;word-break:keep-all}.hero__note{margin:10px auto 0;font-size:.85rem;color:var(--ink-faint);letter-spacing:.01em}.test-grid{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:clamp(24px,6vw,44px)}.test-tile{border:1px solid var(--line);border-radius:var(--radius);padding:24px;background:var(--paper-raised);box-shadow:var(--shadow-sm)}.test-tile h3{margin:12px 0 6px}.test-tile p{font-size:.9rem;color:var(--ink-soft)}.mini-shapes{display:flex;gap:12px;font-size:1.35rem;color:var(--gold);align-items:center;min-height:40px;margin-bottom:4px}.field-grid{display:grid;gap:16px;grid-template-columns:repeat(2,1fr);margin-top:22px}.field-grid .field:first-child{grid-column:1 / -1}@media (max-width: 460px){.field-grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.82rem;color:var(--ink-soft);font-weight:500}.field input,.field select{font-family:inherit;font-size:.95rem;padding:11px 13px;border:1px solid var(--line);border-radius:10px;background:var(--paper);color:var(--ink)}.field input:focus,.field select:focus{outline:none;border-color:var(--gold);background:#fff}.consent{display:flex;gap:10px;align-items:flex-start;margin-top:20px;font-size:.85rem;color:var(--ink-soft)}.consent input{margin-top:3px;width:16px;height:16px;accent-color:var(--ink)}.playground{position:relative;width:100%;height:clamp(320px,52vh,460px);border:1px solid var(--line);border-radius:var(--radius-lg);background:linear-gradient(180deg,#fff,var(--paper)),var(--paper-raised);overflow:hidden;box-shadow:inset 0 0 0 6px #ffffff80,var(--shadow-sm);touch-action:manipulation}.playground__hint{position:absolute;inset:auto 0 14px;text-align:center;font-size:.8rem;color:var(--ink-faint);pointer-events:none}.floater{position:absolute;left:0;top:0;display:grid;place-items:center;border:none;background:transparent;padding:16px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;will-change:transform;transition:transform 2.9s cubic-bezier(.37,0,.63,1);animation:floater-in .45s ease both}.floater:hover{scale:1.09}.floater:active{scale:.94}.floater__inner{width:clamp(58px,14vw,84px);height:clamp(58px,14vw,84px);display:grid;place-items:center;filter:drop-shadow(0 12px 20px rgba(32,29,67,.2));animation:floater-bob 5.5s ease-in-out infinite}@keyframes floater-in{0%{opacity:0}to{opacity:1}}@keyframes floater-bob{0%,to{transform:translateY(0) rotate(-2.5deg)}50%{transform:translateY(-14px) rotate(2.5deg)}}.glyph-s{font-family:var(--font-serif);font-weight:700;font-size:clamp(3rem,11vw,4.4rem);color:var(--accent-s);line-height:1}.pick-tray{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:22px}@media (min-width: 620px){.pick-tray{grid-template-columns:repeat(4,1fr)}}.pick-slot{border:1px dashed var(--line);border-radius:var(--radius);padding:14px;text-align:center;background:var(--paper-raised)}.pick-slot--filled{border-style:solid;border-color:var(--gold-soft)}.pick-slot__rank{font-size:.72rem;letter-spacing:.14em;color:var(--gold);text-transform:uppercase}.pick-slot__shape{font-size:1.7rem;margin:6px 0 2px;min-height:1.9rem}.pick-slot__name{font-size:.82rem;color:var(--ink-soft)}.shape-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}@media (min-width: 620px){.shape-choice-grid{grid-template-columns:repeat(4,1fr)}}.shape-choice{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper-raised);padding:22px 12px;display:flex;flex-direction:column;align-items:center;gap:10px;font-size:1.8rem;color:var(--ink);transition:border-color .2s ease,transform .15s ease}.shape-choice:hover:not(:disabled){border-color:var(--gold);transform:translateY(-2px)}.shape-choice__badge{font-size:.8rem;font-family:var(--font-sans);color:var(--gold)}.shape-choice:disabled{opacity:.35}.q-list{display:flex;flex-direction:column;gap:16px}.q-card{border:1px solid var(--line);border-radius:var(--radius);padding:clamp(16px,4vw,26px);background:var(--paper-raised);box-shadow:var(--shadow-sm)}.q-card--answered{border-color:var(--gold-soft)}.q-card__head{display:flex;gap:12px;margin-bottom:16px}.q-card__num{font-family:var(--font-serif);color:var(--gold);font-size:.95rem;flex-shrink:0}.q-card__text{font-size:1.02rem;color:var(--ink)}.review-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;padding:12px 16px;margin-bottom:22px;border:1px solid var(--lavender-deep);background:var(--lavender);border-radius:var(--radius);font-size:.85rem;color:var(--ink-soft)}.likert{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.likert__opt{display:flex;flex-direction:column;align-items:center;gap:4px;min-height:58px;padding:9px 3px;border:1px solid var(--line);border-radius:10px;background:var(--paper);transition:border-color .15s ease,background .15s ease,transform .12s ease}.likert__opt:hover{border-color:var(--gold-soft)}.likert__opt--on{border-color:var(--ink);background:var(--ink);color:#fff;transform:translateY(-1px)}.likert__num{font-weight:600;font-size:1.05rem;line-height:1}.likert__cap{font-size:.6rem;line-height:1.25;text-align:center;color:var(--ink-faint);word-break:keep-all}.likert__opt--on .likert__cap{color:#ffffffbf}.page-nav{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:26px}.page-nav__count{font-size:.9rem;font-weight:500;color:var(--ink-soft);font-variant-numeric:tabular-nums;letter-spacing:.02em}@media (max-width: 480px){.page-nav__count{order:3;width:100%;text-align:center;padding-top:2px}}.result-loading{min-height:44vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;text-align:center}.result-loading__spinner{width:56px;height:56px;border-radius:50%;border:4px solid var(--lavender-deep);border-top-color:var(--gold);animation:rl-spin .9s linear infinite}@keyframes rl-spin{to{transform:rotate(360deg)}}.result-loading__title{font-family:var(--font-serif);font-size:1.5rem;color:var(--ink);letter-spacing:.02em}.result-loading__msg{font-size:.9rem;color:var(--ink-faint)}.result-head{text-align:center;margin-bottom:30px}.result-head h1{font-size:clamp(1.8rem,5vw,2.6rem)}.notice{display:flex;gap:10px;align-items:flex-start;border:1px solid var(--gold-soft);background:#fdf8ef;border-radius:var(--radius);padding:14px 16px;font-size:.85rem;color:var(--ink-soft);margin-bottom:24px}.rsection{margin-top:20px;padding:clamp(18px,4vw,28px);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--paper)}.rsection:first-of-type{margin-top:8px}.rsection__head{margin-bottom:18px}.rsection__eyebrow{display:block;font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:var(--gold);margin-bottom:7px}.rsection__title{font-family:var(--font-serif);font-size:1.5rem;color:var(--ink)}.rsection__title:after{content:"";display:block;width:34px;height:2px;margin-top:11px;border-radius:2px;background:var(--gold)}.rsection__sub{font-family:var(--font-sans);font-size:.82rem;font-weight:400;color:var(--ink-faint)}.info{margin-top:16px;border:1.5px solid var(--gold);border-radius:var(--radius);background:var(--paper-raised);box-shadow:0 0 0 4px #b0894f14,var(--shadow-sm);padding:16px 18px}.info__title{display:flex;align-items:center;gap:8px;font-family:var(--font-serif);font-size:1.05rem;color:var(--ink);margin-bottom:10px}.info__sub{font-family:var(--font-sans);font-size:.8rem;font-weight:400;color:var(--ink-faint)}.info__lead{font-size:.95rem;font-weight:500;color:var(--ink);margin-bottom:12px}.info dl{display:grid;grid-template-columns:82px 1fr;gap:8px 14px}.info dt{font-size:.74rem;letter-spacing:.06em;font-weight:600;color:var(--ink-faint);padding-top:3px}.info dd{font-size:.9rem;color:var(--ink-soft);line-height:1.75}.info__comment{margin-top:14px;padding:12px 14px;background:var(--lavender);border-radius:10px}.info__comment-label{display:block;font-size:.72rem;letter-spacing:.06em;font-weight:600;color:var(--ink-faint);margin-bottom:5px}.info__comment p{font-size:.88rem;color:var(--ink-soft);line-height:1.75}@media (max-width: 480px){.info dl{grid-template-columns:1fr;gap:2px}.info dt{margin-top:8px}}.type-hero{display:flex;flex-direction:column;gap:2px}.type-hero__num{font-family:var(--font-serif);font-size:2.9rem;line-height:1.1;color:var(--gold)}.type-hero__wing-code{font-size:.55em;color:var(--ink-soft);margin-left:1px}.type-hero__name{font-family:var(--font-serif);font-size:1.4rem}.type-hero__wing{margin-top:6px;font-size:.85rem;color:var(--ink-soft)}.bars{display:flex;flex-direction:column;gap:10px;margin-top:18px}.bars__note{margin-top:12px;font-size:.78rem;color:var(--ink-faint)}.bar-row{display:grid;grid-template-columns:132px 1fr 44px;gap:12px;align-items:center;font-size:.85rem}.bar-row__label{color:var(--ink-soft)}.bar-row--top .bar-row__label{color:var(--ink);font-weight:600}.bar-row__track{display:block;height:10px;background:#e7e3f2;border-radius:999px;overflow:hidden}.bar-row__fill{display:block;height:100%;border-radius:999px;background:#ccc7e6;transition:width .7s cubic-bezier(.4,0,.2,1)}.bar-row--top .bar-row__fill{background:var(--gold)}.bar-row--low .bar-row__fill{background:#dda49c}.bar-row--low .bar-row__val{color:var(--danger)}.bar-row__val{text-align:right;color:var(--ink-faint);font-variant-numeric:tabular-nums}.shape-order{list-style:none;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}@media (min-width: 620px){.shape-order{grid-template-columns:repeat(4,1fr)}}.shape-order__item{display:flex;flex-direction:column;align-items:center;gap:9px;padding:16px 12px;border:1px solid transparent;border-radius:var(--radius);background:var(--paper-raised);box-shadow:var(--shadow-sm)}.shape-order__rank{font-size:.86rem;font-weight:600;color:var(--ink-soft);letter-spacing:.01em}.shape-order__item--top{border-color:var(--gold)}.shape-order__item--top .shape-order__rank{color:var(--gold)}.shape-order__glyph{display:grid;place-items:center;min-height:40px}.shape-order__name{font-family:var(--font-serif);font-size:1rem;color:var(--ink)}.shape-order__temper{font-size:.76rem;color:var(--ink-faint)}.ennea-summary{display:flex;align-items:center;gap:clamp(16px,5vw,36px);flex-wrap:wrap;margin-bottom:28px}.gauge{width:148px;height:148px;flex-shrink:0}.gauge__track{fill:none;stroke:var(--lavender);stroke-width:13}.gauge__value{fill:none;stroke:var(--gold);stroke-width:13;stroke-linecap:round;transition:stroke-dashoffset .9s cubic-bezier(.4,0,.2,1)}.gauge__num{font-family:var(--font-serif);font-size:2rem;font-weight:600;fill:var(--ink);text-anchor:middle}.gauge__unit{font-size:.72rem;fill:var(--ink-faint);text-anchor:middle}.center-narrow{max-width:34rem;margin:0 auto;text-align:center}.spacer-lg{height:clamp(24px,6vw,40px)}@media (max-width: 560px){.likert{gap:5px}.likert__opt{min-height:54px;padding:8px 2px}.likert__cap{font-size:.56rem}.bar-row{grid-template-columns:92px 1fr 34px}}@media print{body{background:#fff}.app-header,.app-footer,.stepper,.no-print{display:none!important}.app-main{padding:0}.card{box-shadow:none;border:none;padding:0}.rsection{break-inside:avoid}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}
