.kt{
    --jeong:#e5544b; --chemyon:#3a6ea5; --sinmyeong:#e8a33d; --nunchi:#3fa87a;
    --bg:#faf7f2; --card:#ffffff; --ink:#2a2622; --sub:#726b62; --line:#ece5da;
  }
:root.dark .kt{ --bg:#161310; --card:#211d19; --ink:#f0e9df; --sub:#a89f92; --line:#332c25; }
.kt *{box-sizing:border-box; -webkit-tap-highlight-color:transparent;}
.kt{margin:0; background:var(--bg); color:var(--ink);
    font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif; line-height:1.65; -webkit-font-smoothing:antialiased;}
.kt .wrap{max-width:560px; margin:0 auto; padding:22px 18px 60px;}
.kt .langbar{text-align:right; font-size:13px; margin-bottom:4px;}
.kt .langbar a{color:var(--sub); text-decoration:none; border:1px solid var(--line); padding:4px 10px; border-radius:99px;}
.kt .ktbrand{text-align:center; margin:10px 0 6px;}
.kt .logo{font-size:12px; letter-spacing:.32em; color:var(--sub);}
.kt h1{font-size:29px; margin:.15em 0 .05em; letter-spacing:-.02em;}
.kt .sub{font-size:14px; color:var(--sub);}
.kt .swatch{display:inline-block; width:11px; height:11px; border-radius:3px; margin:0 2px; vertical-align:middle;}
.kt .swrow{margin:10px 0 0; font-size:13px;}
.kt .swrow span{margin-left:7px;}
.kt .lede{color:var(--sub); text-align:center; font-size:15.5px; margin:14px auto 22px; max-width:440px;}
.kt .card{background:var(--card); border:1px solid var(--line); border-radius:18px; padding:22px 20px;}
.kt .btn{display:block; width:100%; border:0; border-radius:14px; padding:16px; font-size:17px; font-weight:700;
    color:#fff; background:linear-gradient(135deg,var(--jeong),var(--sinmyeong)); cursor:pointer; margin-top:8px; font-family:inherit;}
.kt .btn:active{transform:translateY(1px);}
.kt .btn.ghost{background:transparent; color:var(--sub); border:1px solid var(--line); font-weight:600;}
.kt .meta{font-size:12.5px; color:var(--sub); text-align:center; margin-top:16px;}
.kt .prog{height:6px; background:var(--line); border-radius:99px; overflow:hidden; margin-bottom:20px;}
.kt .prog > i{display:block; height:100%; background:linear-gradient(90deg,var(--jeong),var(--nunchi)); transition:width .25s;}
.kt .qn{font-size:13px; color:var(--sub); margin-bottom:4px;}
.kt .qtext{font-size:19px; font-weight:700; margin:2px 0 20px; letter-spacing:-.01em; line-height:1.45;}
.kt .likert{display:grid; gap:9px;}
.kt .opt{border:1px solid var(--line); background:transparent; color:var(--ink); border-radius:12px; padding:15px 16px;
    text-align:left; font-size:16px; cursor:pointer; font-family:inherit; transition:.12s;}
.kt .opt:hover{border-color:var(--sub);}
.kt .opt:active{transform:translateY(1px);}
.kt .nav{display:flex; justify-content:space-between; margin-top:16px;}
.kt .nav button{background:none; border:0; color:var(--sub); font-size:14px; cursor:pointer; font-family:inherit; padding:6px;}
.kt .nav button[disabled]{opacity:.3; cursor:default;}
.kt .arche{text-align:center; padding:8px 0 4px;}
.kt .emoji{font-size:64px; line-height:1;}
.kt .tname{font-size:25px; font-weight:800; margin:8px 0 4px;}
.kt .tcode{display:block; font-size:38px; font-weight:800; letter-spacing:.22em; color:var(--jeong); margin:6px 0 2px;}
.kt .tdesc{font-size:16px; color:var(--ink); margin:16px 4px 4px; line-height:1.6;}
.kt .axes{margin:24px 0 6px; display:grid; gap:18px;}
.kt .axl{display:flex; justify-content:space-between; font-size:13.5px; margin-bottom:8px;}
.kt .axl b{font-weight:600; color:var(--sub);}
.kt .axl b.on{font-weight:800;}
.kt .axtrack{position:relative; height:8px; background:var(--line); border-radius:99px;}
.kt .axtrack > i{position:absolute; top:50%; width:20px; height:20px; border-radius:50%; transform:translate(-50%,-50%);
    border:3px solid var(--card); left:50%; transition:left .6s cubic-bezier(.2,.8,.2,1);}
.kt .ax-j.on{color:var(--jeong);}
.kt .ax-c.on{color:var(--chemyon);}
.kt .ax-s.on{color:var(--sinmyeong);}
.kt .ax-n.on{color:var(--nunchi);}
.kt .kj{background:var(--jeong);}
.kt .kc{background:var(--chemyon);}
.kt .ks{background:var(--sinmyeong);}
.kt .kn{background:var(--nunchi);}
.kt .sect-t{font-size:14px; font-weight:700; color:var(--sub); margin:26px 4px 10px; letter-spacing:.02em;}
.kt .lenses{display:grid; gap:10px;}
.kt .lens{border:1px solid var(--line); border-radius:14px; overflow:hidden; background:var(--card);}
.kt .lens > button{width:100%; text-align:left; background:none; border:0; padding:15px 16px; font-size:16px; font-weight:700;
    color:var(--ink); cursor:pointer; font-family:inherit; display:flex; justify-content:space-between; align-items:center; gap:8px;}
.kt .lens .chev{color:var(--sub); font-size:12px; transition:transform .25s;}
.kt .lens.open .chev{transform:rotate(180deg);}
.kt .lens .body{max-height:0; overflow:hidden; transition:max-height .3s ease;}
.kt .lens.open .body{max-height:900px;}
.kt .lens .inner{padding:0 16px 16px;}
.kt .lens .inner p{margin:0; font-size:15px; color:var(--sub); line-height:1.75;}
.kt .match{display:flex; gap:10px;}
.kt .match .m{flex:1; text-align:center; border:1px solid var(--line); border-radius:12px; padding:14px 8px;}
.kt .match .me{font-size:34px; line-height:1;}
.kt .match .ml{font-size:11.5px; color:var(--sub); margin-top:6px;}
.kt .match .mn{font-weight:700; font-size:13.5px; margin-top:2px;}
.kt .concept{margin-top:34px;}
.kt .concept h2{font-size:18px; margin:24px 0 8px; letter-spacing:-.01em;}
.kt .concept h2 .swatch{margin-right:6px;}
.kt .concept p{font-size:15px; color:var(--sub); margin:0 0 10px;}
.kt .disc{font-size:12px; color:var(--sub); background:var(--card); border:1px dashed var(--line); border-radius:12px; padding:12px 14px; margin-top:26px;}
.kt .foot{text-align:center; font-size:12px; color:var(--sub); margin-top:26px;}
.kt .longbox{background:var(--card); border:1px solid var(--line); border-radius:14px; padding:18px; font-size:15px; color:var(--sub); line-height:1.8;}
.kt .longbox b{color:var(--ink);}
.kt .cardimg{width:100%; border-radius:16px; border:1px solid var(--line); display:block;}
.kt .overlay{position:fixed; inset:0; background:var(--bg); z-index:50; display:flex; flex-direction:column;}
.kt .ov-head{display:flex; align-items:center; gap:8px; padding:14px 18px; border-bottom:1px solid var(--line); font-size:16px;}
.kt .ov-head b{flex:1; text-align:center; font-weight:800;}
.kt .ov-head button{background:none; border:0; color:var(--sub); font-size:18px; cursor:pointer; font-family:inherit; width:34px;}
.kt .ov-body{flex:1; overflow-y:auto; padding:18px; max-width:560px; margin:0 auto; width:100%;}
.kt .gal-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:7px;}
.kt .gal-box{border:1px solid var(--line); background:var(--card); border-radius:12px; padding:11px 4px; cursor:pointer; font-family:inherit; color:var(--ink); display:flex; flex-direction:column; align-items:center; gap:3px;}
.kt .gal-box:active{transform:translateY(1px);}
.kt .gal-box .ge{font-size:27px; line-height:1;}
.kt .gal-box .gc{font-weight:800; font-size:13px; letter-spacing:.06em; color:var(--ink);}
.kt .gal-box .gn{font-size:9px; color:var(--sub); line-height:1.2; text-align:center;}
.kt .site-foot{margin-top:44px; padding-top:22px; border-top:1px solid var(--line); text-align:center; font-size:12px; color:var(--sub);}
.kt .site-foot nav{margin-bottom:10px; line-height:2;}
.kt .site-foot a{color:var(--sub); text-decoration:none;}
.kt .site-foot p{margin:6px 0;}
.kt .hidden{display:none;}
.kt .overlay{z-index:60}
.kt{background:var(--bg);color:var(--ink);border-radius:3px}