:root{--bg: #faf7f2;--panel: #ffffff;--panel-2: #f4efe6;--border: #e8e1d4;--text: #0f2a47;--muted: #5d6b7e;--accent: #d94b7a;--accent-dim: #c43e6b;--accent-text: #ffffff;--btn2-bg: #0f2a47;--btn2-text: #ffffff;--btn2-hover: #1c3c5e;--input-bg: #ffffff;--input-border: #dbdcdb;--radius: 14px;--radius-input: 10px}html[data-theme=dark]{--bg: #0f2236;--panel: #15304b;--panel-2: #1b3a5a;--border: #284a6e;--text: #f1ece2;--muted: #9fb2c7;--accent: #e85d8a;--accent-dim: #d94b7a;--accent-text: #ffffff;--btn2-bg: #23456a;--btn2-text: #f1ece2;--btn2-hover: #2c557f;--input-bg: #0f2740;--input-border: #2c4d72}html{color-scheme:light}html[data-theme=dark]{color-scheme:dark}*{box-sizing:border-box}body{margin:0;font-family:Geist,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;-webkit-font-smoothing:antialiased}h1,h2,h3,.logo{font-family:Fraunces,Georgia,Times New Roman,serif}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}header{border-bottom:1px solid var(--border);padding:1rem 1.5rem;display:flex;align-items:center;gap:1.25rem 1.75rem;flex-wrap:wrap;background:var(--bg)}header .logo{font-weight:600;font-size:1.35rem;color:var(--text);letter-spacing:-.01em}header nav{display:flex;gap:.4rem 1.1rem;flex-wrap:wrap;font-size:.88rem}header nav a{color:var(--muted)}header nav a:hover{color:var(--accent);text-decoration:none}main{max-width:820px;margin:0 auto;padding:2.5rem 1.5rem 4rem}h1{font-size:2.25rem;font-weight:600;margin:0 0 .5rem;letter-spacing:-.015em;line-height:1.15}.sub{color:var(--muted);margin:0 0 2rem;font-size:1.05rem;max-width:62ch}.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:.35rem;font-weight:500}input,select,textarea{width:100%;background:var(--input-bg);border:1px solid var(--input-border);color:var(--text);padding:.65rem .8rem;border-radius:var(--radius-input);font-size:.95rem;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent)}button{background:var(--accent);color:var(--accent-text);border:none;padding:.6rem 1.4rem;border-radius:999px;font-weight:600;cursor:pointer;font-size:.95rem;font-family:inherit;transition:background .15s ease}button:hover{background:var(--accent-dim)}button.btn2{background:var(--btn2-bg);color:var(--btn2-text)}button.btn2:hover{background:var(--btn2-hover)}.theme-toggle{margin-left:auto;background:var(--btn2-bg);color:var(--btn2-text);padding:.45rem .95rem;font-size:.82rem}.grid{display:grid;gap:1rem}@media (min-width: 620px){.grid.cols-2{grid-template-columns:1fr 1fr}}.tools-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));margin-top:1.75rem}.tool-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:1.35rem;display:block;color:var(--text);transition:border-color .15s ease,transform .15s ease}.tool-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-2px)}.tool-card h3{margin:0 0 .4rem;font-size:1.15rem;font-weight:600;color:var(--text)}.tool-card p{margin:0;font-size:.9rem;color:var(--muted);line-height:1.55}.mono,.result-row .v{font-family:Geist Mono,ui-monospace,SFMono-Regular,Menlo,monospace}footer{border-top:1px solid var(--border);padding:2rem 1.5rem;color:var(--muted);font-size:.85rem;text-align:center;background:var(--panel-2)}footer a{color:var(--text)}.info{margin-top:2.75rem;line-height:1.75}.info h2{font-size:1.5rem;font-weight:600;margin:1.75rem 0 .5rem}.info h3{font-size:1.15rem;font-weight:600;margin:1.4rem 0 .4rem}.info ul,.info ol{padding-left:1.25rem}.info details{border:1px solid var(--border);border-radius:var(--radius-input);padding:.85rem 1.1rem;margin:.6rem 0;background:var(--panel)}.info summary{cursor:pointer;font-weight:600}.info details[open] summary{margin-bottom:.5rem}.result-row{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--border)}.result-row:last-child{border-bottom:none}.result-row .k{color:var(--muted)}.result-row .v{text-align:right;word-break:break-all}
