@import url("https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+Thai:wght@300;400;500;600;700&family=IBM+Plex+Mono:wght@400;500&family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,500&display=swap");:root{--bg:#f7f4ed;--bg-elev:#fffef9;--ink:#1a1814;--ink-dim:#57534a;--ink-soft:#8a8578;--line:#e5dfd0;--line-soft:#efeadc;--accent:#2d4a3e;--accent-bright:#3d6b56;--gold:#b08a3e;--gold-soft:#f3e9d0;--rose:#a63d3d;--rose-soft:#f6e2de;--amber:#b5751b;--amber-soft:#f6e9ce;--good:#2d6a4f;--good-soft:#dcede2;--radius-sm:2px;--radius-md:4px}@media (prefers-color-scheme:dark){:root{--bg:#14120e;--bg-elev:#1e1b16;--ink:#f2eee2;--ink-dim:#b5ae9c;--ink-soft:#7a7568;--line:#2d2922;--line-soft:#23201a;--accent:#6fa58a;--accent-bright:#8ec2a7;--gold:#d4ab5f;--gold-soft:#2f2716;--rose:#d47878;--rose-soft:#2b1e1d;--amber:#d89849;--amber-soft:#2b2114;--good:#7bb893;--good-soft:#1f2a22}}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:IBM Plex Sans Thai,-apple-system,sans-serif;background:var(--bg);color:var(--ink);font-size:15px;line-height:1.6;min-height:100vh;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button{cursor:pointer;background:none;border:none}button,input,select,textarea{font-family:inherit;color:inherit}a{color:inherit}.serif{font-family:Fraunces,serif;font-weight:400}.mono{font-family:IBM Plex Mono,monospace}.italic{font-style:italic}.container{max-width:1120px;margin:0 auto;padding:0 32px}.page-inner{padding:48px 0 96px}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:saturate(1.4) blur(8px);-webkit-backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--line)}.nav-inner{max-width:1120px;margin:0 auto;padding:16px 32px;justify-content:space-between;gap:24px}.brand,.nav-inner{display:flex;align-items:center}.brand{gap:12px;text-decoration:none}.brand-mark{width:32px;height:32px;border-radius:50%;background:var(--ink);color:var(--bg);display:flex;align-items:center;justify-content:center;font-style:italic}.brand-mark,.brand-name{font-family:Fraunces,serif;font-weight:500;font-size:16px}.brand-name{letter-spacing:-.01em}.nav-links{display:flex;align-items:center;gap:4px}.nav-link{padding:8px 14px;font-size:13px;text-decoration:none;color:var(--ink-dim);border-radius:2px;transition:all .2s;letter-spacing:.01em}.nav-link:hover{color:var(--ink);background:var(--line-soft)}.nav-link.active{color:var(--ink);background:var(--bg-elev);border:1px solid var(--line)}h1.page-title{font-family:Fraunces,serif;font-weight:400;font-size:clamp(36px,5vw,56px);line-height:1.05;letter-spacing:-.02em;margin-bottom:16px;max-width:720px}h1.page-title em{font-style:italic;color:var(--accent)}.page-lede{font-size:17px;color:var(--ink-dim);max-width:640px;margin-bottom:48px}.section-title{font-family:Fraunces,serif;font-weight:400;font-size:28px;letter-spacing:-.01em;margin:56px 0 8px;display:flex;align-items:baseline;gap:16px}.section-title .num{font-style:italic;color:var(--ink-soft);font-size:20px}.section-sub{font-size:14px;color:var(--ink-dim);margin-bottom:24px}.panel{background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;padding:32px;margin-bottom:32px}.panel-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--line-soft)}.panel-head .label{font-weight:500;font-size:13px;letter-spacing:.08em;text-transform:uppercase}.panel-head .label,.panel-head .step{font-family:Fraunces,serif;color:var(--ink-soft)}.panel-head .step{font-style:italic;font-size:14px}.field-group{margin-bottom:20px}.field-group:last-child{margin-bottom:0}label{display:block;font-size:13px;color:var(--ink-dim);margin-bottom:8px}label .req{color:var(--rose);font-family:Fraunces,serif;font-style:italic}input[type=text],select,textarea{width:100%;padding:12px 14px;background:var(--bg);border:1px solid var(--line);border-radius:2px;font-size:15px;transition:border-color .2s,background .2s}textarea{font-family:IBM Plex Mono,monospace;font-size:13px;min-height:110px;resize:vertical;line-height:1.6}input[type=text]:focus,select:focus,textarea:focus{outline:none;border-color:var(--ink);background:var(--bg-elev)}.action-bar{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:20px;border-top:1px solid var(--line-soft)}.action-bar .hint{font-size:12px;color:var(--ink-soft);font-family:Fraunces,serif;font-style:italic}.btn-primary{background:var(--ink);color:var(--bg-elev);padding:12px 24px;font-size:14px;font-weight:500;border-radius:2px;transition:all .2s;display:inline-flex;align-items:center;gap:10px}.btn-primary:hover{background:var(--accent);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.btn-primary .arrow{font-family:Fraunces,serif;font-style:italic;transition:transform .2s}.btn-primary:hover .arrow{transform:translate(2px,-2px)}.btn-ghost{color:var(--ink-dim);border:1px solid var(--line);padding:10px 16px;font-size:13px;border-radius:2px;transition:all .2s}.btn-ghost:hover{border-color:var(--ink);color:var(--ink)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0;border:1px solid var(--line);background:var(--bg-elev);border-radius:2px;margin-bottom:40px}.stat{padding:24px 28px;border-right:1px solid var(--line);transition:background .2s}.stat:last-child{border-right:none}.stat:hover{background:var(--bg)}.stat-label{font-size:11px;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px}.stat-value{font-family:Fraunces,serif;font-size:44px;line-height:1;letter-spacing:-.02em;margin-bottom:6px}.stat-value.good{color:var(--good)}.stat-value.warn{color:var(--amber)}.stat-value.bad{color:var(--rose)}.stat-hint{font-size:12px;color:var(--ink-soft);font-family:Fraunces,serif;font-style:italic}.mode-switcher{display:grid;grid-template-columns:1fr 1fr;background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;padding:4px;margin-bottom:24px}.mode-tab{padding:16px 20px;border-radius:2px;text-align:left;color:var(--ink-dim);transition:all .25s cubic-bezier(.4,0,.2,1)}.mode-tab.active{background:var(--ink);color:var(--bg-elev)}.mode-tab .tab-num{font-family:Fraunces,serif;font-style:italic;font-size:12px;opacity:.7;display:block;margin-bottom:2px}.mode-tab .tab-label{font-size:15px;font-weight:500;line-height:1.3}.mode-tab .tab-desc{font-size:12px;opacity:.75;margin-top:4px}.link-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;padding:28px 32px;margin-bottom:16px;transition:border-color .2s,box-shadow .2s}.link-card:hover{border-color:var(--ink-soft);box-shadow:0 4px 16px rgba(26,24,20,.06)}.link-head{display:grid;grid-template-columns:1fr auto;grid-gap:24px;gap:24px;align-items:flex-start;margin-bottom:16px}.link-url{font-family:IBM Plex Mono,monospace;font-size:13px;word-break:break-all;line-height:1.5;margin-bottom:4px}.link-url a{text-decoration:none;border-bottom:1px dotted var(--ink-soft)}.link-url a:hover{border-bottom-color:var(--ink)}.link-meta{font-size:12px;color:var(--ink-soft)}.link-meta .dot{margin:0 8px;color:var(--line)}.link-score{text-align:right}.link-score .score-value{font-family:Fraunces,serif;font-size:36px;line-height:1;letter-spacing:-.02em}.link-score .score-value.good{color:var(--good)}.link-score .score-value.warn{color:var(--amber)}.link-score .score-value.bad{color:var(--rose)}.link-score .score-label{font-size:11px;color:var(--ink-soft);letter-spacing:.06em;text-transform:uppercase;margin-top:4px}.progress-bar{display:flex;gap:2px;height:6px;margin:20px 0;border-radius:2px;overflow:hidden}.progress-seg{transition:flex .5s}.progress-seg.good{background:var(--good)}.progress-seg.warn{background:var(--amber)}.progress-seg.none{background:var(--line)}.sub-query-list{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.sq-item{display:grid;grid-template-columns:14px 1fr auto;grid-gap:12px;gap:12px;align-items:center;font-size:13px}.sq-dot{width:8px;height:8px;border-radius:50%}.sq-dot.good{background:var(--good)}.sq-dot.warn{background:var(--amber)}.sq-dot.bad{background:var(--rose)}.sq-rank{font-family:IBM Plex Mono,monospace;font-size:11px;color:var(--ink-soft);padding:2px 8px;border:1px solid var(--line);border-radius:2px;background:var(--bg)}.link-footer{display:flex;justify-content:space-between;align-items:center;padding-top:16px;border-top:1px solid var(--line-soft);gap:16px}.link-advice{font-size:12px;color:var(--ink-dim);font-family:Fraunces,serif;font-style:italic;line-height:1.5;flex:1 1}.chip{display:inline-block;padding:2px 10px;font-size:11px;border-radius:2px;font-weight:500;border:1px solid transparent}.chip.project{background:var(--gold-soft);color:var(--gold);border-color:var(--gold)}.chip.review{background:var(--good-soft);color:var(--good);border-color:var(--good)}.chip.english{background:var(--amber-soft);color:var(--amber);border-color:var(--amber)}.chip.sales{background:var(--good-soft);color:var(--good);border-color:var(--good)}.loading-dot{display:inline-block;width:14px;height:14px;border:2px solid var(--bg-elev);border-top:2px solid transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(1turn)}}.hidden{display:none}.ghost-state{text-align:center;padding:80px 40px;color:var(--ink-soft)}.ghost-state .hex{font-size:56px;color:var(--line);margin-bottom:16px;line-height:1}.ghost-state .hex,.ghost-state .msg{font-family:Fraunces,serif;font-style:italic}.ghost-state .msg{font-size:14px;max-width:360px;margin:0 auto}.dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:16px;gap:16px;margin-bottom:40px}.dash-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;padding:24px}.dash-card .card-label{font-size:11px;color:var(--ink-soft);letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px}.dash-card .card-value{font-family:Fraunces,serif;font-size:36px;line-height:1;letter-spacing:-.02em;margin-bottom:6px}.dash-card .card-hint{font-size:12px;color:var(--ink-dim);font-family:Fraunces,serif;font-style:italic}.rec-item{background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;padding:20px 24px;margin-bottom:12px;display:grid;grid-template-columns:80px 1fr;grid-gap:20px;gap:20px;align-items:flex-start}.rec-priority{font-family:Fraunces,serif;font-style:italic;font-size:13px;padding:4px 12px;border-radius:2px;text-align:center;border:1px solid}.rec-priority.high{color:var(--rose);border-color:var(--rose);background:var(--rose-soft)}.rec-priority.medium{color:var(--amber);border-color:var(--amber);background:var(--amber-soft)}.rec-priority.low{color:var(--ink-soft);border-color:var(--line);background:var(--bg)}.rec-action{font-size:15px;font-weight:500;margin-bottom:6px}.rec-rationale{font-size:13px;color:var(--ink-dim);margin-bottom:10px}.rec-impact{font-size:12px;color:var(--ink-soft);font-family:Fraunces,serif;font-style:italic}.chart-box{background:var(--bg-elev);border:1px solid var(--line);border-radius:2px;padding:24px;margin-bottom:32px}.legend-row{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12px;color:var(--ink-dim)}.legend-row .swatch{display:inline-block;width:12px;height:2px;margin-right:6px;vertical-align:middle}@media (max-width:780px){.container{padding:0 20px}.page-inner{padding:32px 0 64px}.nav-inner{padding:12px 20px}.stats-grid{grid-template-columns:repeat(2,1fr)}.stat:nth-child(2){border-right:none}.stat:first-child,.stat:nth-child(2){border-bottom:1px solid var(--line)}.mode-switcher{grid-template-columns:1fr}.panel{padding:20px}.link-head{grid-template-columns:1fr}.section-title{font-size:24px}}