:root{--page:#f7f9fc;--surface:#ffffff;--surface-warm:#fff1e7;--surface-cool:#eaf3ff;--text-primary:#16243c;--text-secondary:#4b5c77;--link:#1755c8;--primary:#175de1;--primary-hover:#104bb8;--accent:#f77a32;--accent-ink:#87360f;--border-warm:#f1b48d;--border:#e0e7f0;--control-border:#61718c;--focus-ring:#175de1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--page);color:var(--text-primary);font-family:system-ui,-apple-system,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif;line-height:1.8}a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}.container{width:min(1100px,calc(100% - 36px));margin:auto}.top{position:sticky;top:0;background:#ffffffef;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid #e2e7ef;z-index:3}.nav{min-height:72px;display:flex;justify-content:space-between;gap:16px}.brand,.nav{align-items:center}.brand{display:inline-flex;gap:9px;color:#132340;font-size:20px;font-weight:800;white-space:nowrap}.brand:hover{text-decoration:none}.brandmark{display:block;width:42px;height:42px;border-radius:12px;object-fit:contain;background:var(--surface-warm);transition:transform .2s ease}.brand:focus-visible .brandmark,.brand:hover .brandmark{transform:rotate(-7deg) scale(1.06)}.nav nav{display:flex;align-items:center;gap:22px}.nav nav a{color:var(--text-secondary);font-size:14px;font-weight:600}.language-select{display:inline-flex;align-items:center}.language-select select{font:inherit;font-size:13px;font-weight:700;color:var(--text-secondary);background:var(--surface);border:1px solid var(--control-border);border-radius:9px;padding:8px 28px 8px 10px;cursor:pointer}.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}.beta-notice{background:var(--surface-warm);border-bottom:1px solid var(--border)}.beta-notice-inner{display:flex;align-items:center;justify-content:space-between;gap:12px 18px;padding-block:10px}.beta-notice-tag{flex:0 0 auto;padding:2px 9px;font-size:12px}.beta-notice p{flex:1 1;margin:0;color:var(--text-primary);font-size:13px;line-height:1.6}.beta-notice a{flex:0 0 auto;color:var(--link);font-size:13px;font-weight:700}.beta-notice a span{white-space:nowrap}.hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 82% 28%,#ffd9bd 0,transparent 39%),linear-gradient(120deg,#fffaf5,var(--surface-cool));padding:70px 0 66px;border-bottom:1px solid #e6ecf7}.hero:before{content:"";position:absolute;z-index:-1;top:5%;right:5%;width:min(42vw,500px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#ffffff9c 0,#ffffff00 70%);pointer-events:none}.hero-grid{position:relative;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:center;gap:24px}.hero-grid:after,.hero-grid:before{position:absolute;z-index:1;color:var(--accent);line-height:1;pointer-events:none;text-shadow:0 3px 12px #f77a323d}.hero-grid:before{content:"✦";top:15%;right:39%;font-size:23px;animation:sparkle 3.1s ease-in-out infinite}.hero-grid:after{content:"✧";right:2%;bottom:16%;color:var(--primary);font-size:27px;animation:sparkle 3.8s ease-in-out .5s infinite}.hero-copy{max-width:690px}.hero-mascot{display:block;width:100%;height:auto;max-width:520px;justify-self:center;filter:drop-shadow(0 14px 18px #183c701f);transform-origin:50% 65%;animation:mascot-float 5.2s ease-in-out infinite}@keyframes mascot-float{0%,to{transform:translateY(0) rotate(-.7deg)}50%{transform:translateY(-9px) rotate(.7deg)}}@keyframes sparkle{0%,to{opacity:.38;transform:scale(.78) rotate(-12deg)}50%{opacity:.95;transform:scale(1.12) rotate(12deg)}}.hero h1{font-size:clamp(36px,5.3vw,66px);letter-spacing:-.05em;line-height:1.4;margin:24px 0}.hero h1 span{color:var(--primary)}.lead{color:var(--text-secondary);font-size:19px;max-width:730px}.pill{display:inline-block;padding:4px 14px;border:1px solid var(--border-warm);color:var(--accent-ink);background:var(--surface-warm);border-radius:999px;font-size:13px;font-weight:700}.button{display:inline-flex;justify-content:center;align-items:center;gap:8px;margin-top:15px;padding:13px 22px;color:#fff;background:var(--primary);border:0;border-radius:12px;font:inherit;font-weight:700;cursor:pointer;transition:background-color .18s ease,transform .18s ease,box-shadow .18s ease}.button:hover{color:#fff;background:var(--primary-hover);box-shadow:0 7px 18px #175de133;text-decoration:none;transform:translateY(-2px)}.button:disabled{opacity:.45;cursor:not-allowed}.secondary-button{color:var(--text-primary);background:#eaf0fa;border:1px solid var(--border)}.secondary-button:hover{color:var(--text-primary);background:#dce7f7}.micro{margin-top:17px;color:var(--text-secondary);font-size:13px}.section{padding:60px 0}.eyebrow{color:#376ade;font-size:12px;font-weight:800;letter-spacing:.12em}.section h1{font-size:clamp(31px,4vw,48px);letter-spacing:-.035em;line-height:1.35}.section h2{margin:32px 0 12px;font-size:27px}.tool-directory{padding-top:50px;padding-bottom:58px}.directory-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.directory-heading h2{margin:5px 0 3px;font-size:clamp(25px,3vw,32px);letter-spacing:-.035em}.directory-lead{margin:0;color:var(--text-secondary);font-size:15px}.directory-count{flex:0 0 auto;margin-bottom:5px;padding:6px 12px;color:var(--accent-ink);background:var(--surface-warm);border:1px solid var(--border);border-radius:999px;font-size:12px;font-weight:700}.tool-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:25px}.tool-feature{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 112px;align-items:center;gap:10px;min-width:0;min-height:205px;padding:19px;overflow:hidden;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:0 8px 26px #183c700c;transition:transform .22s cubic-bezier(.2,.8,.2,1),border-color .22s ease,box-shadow .22s ease}.tool-feature:before{position:absolute;z-index:-1;right:-45px;bottom:-62px;width:160px;height:160px;content:"";background:radial-gradient(circle,color-mix(in srgb,var(--surface-cool) 72%,transparent) 0,transparent 72%);pointer-events:none}.tool-feature:focus-visible,.tool-feature:hover{color:var(--text-primary);text-decoration:none;transform:translateY(-4px);border-color:#9cb8ff;box-shadow:0 14px 32px #183c701c}.tool-feature-copy{min-width:0}.tool-tag{display:inline-flex;align-items:center;min-height:22px;padding:1px 8px;color:var(--accent-ink);background:var(--surface-warm);border:1px solid var(--border-warm);border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.07em}.tool-feature h3{margin:9px 0 5px;font-size:clamp(16px,1.6vw,19px);line-height:1.4;overflow-wrap:anywhere}.tool-feature p{margin:0 0 13px;color:var(--text-secondary);font-size:13px;line-height:1.55}.tool-feature-art{display:flex;align-items:center;justify-content:center;width:112px;aspect-ratio:1;overflow:hidden;background:linear-gradient(145deg,var(--surface-warm),var(--surface-cool));border-radius:18px}.tool-feature-art img{display:block;width:100%;height:100%;padding:3px;object-fit:contain}.underlink{color:var(--link);font-size:13px;font-weight:750}.tool-library{margin-top:31px;padding-top:22px;border-top:1px solid var(--border)}.tool-library-heading{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:14px}.tool-library-heading h3{margin:0;font-size:18px}.tool-library-heading>span{color:var(--text-secondary);font-size:12px}.tool-mini-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.tool-mini-card{display:grid;grid-template-columns:58px minmax(0,1fr) 16px;align-items:center;gap:10px;min-width:0;min-height:84px;padding:10px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:15px;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}.tool-mini-card:focus-visible,.tool-mini-card:hover{color:var(--text-primary);text-decoration:none;transform:translateY(-2px);border-color:#9cb8ff;box-shadow:0 8px 20px #183c7010}.tool-mini-art{display:flex;align-items:center;justify-content:center;width:58px;height:58px;overflow:hidden;background:linear-gradient(145deg,var(--surface-warm),var(--surface-cool));border-radius:12px}.tool-mini-art img{display:block;width:100%;height:100%;padding:2px;object-fit:contain}.tool-mini-copy{display:grid;min-width:0;gap:2px}.tool-mini-copy strong{font-size:12px;line-height:1.4}.tool-mini-copy>span{display:-webkit-box;overflow:hidden;color:var(--text-secondary);font-size:11px;line-height:1.4;-webkit-box-orient:vertical;-webkit-line-clamp:2}.tool-mini-arrow{align-self:start;padding-top:3px;color:var(--link);font-size:14px;font-weight:800}.directory-note{margin:22px 0 0}.content p,.steps p{color:var(--text-secondary)}.note{padding:12px 15px;color:var(--text-secondary)!important;background:#f0f4fa;border-radius:10px;font-size:13px!important}.content{max-width:900px}.content>h2{margin-top:42px}.tool-intro{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:16px;align-items:center;margin-bottom:8px}.tool-intro-art{display:block;width:190px;height:180px;object-fit:contain}.about-logo{display:block;width:min(220px,60vw);height:auto;margin:0 auto 20px}.guide{max-width:780px}.guide-illustration{display:block;width:100%;height:auto;margin:12px auto 26px}.workbox{margin:30px 0;padding:28px;background:var(--surface);border:1px solid #dfe6f2;border-radius:18px;box-shadow:0 10px 36px #17345a14}.label{display:block;margin:15px 0 8px;font-size:14px;font-weight:700}.workbox input[type=file]{width:100%;padding:13px;background:#f8fbff;border:2px dashed #b6c9e9;border-radius:12px}.workbox select,.workbox textarea{display:block;width:100%;padding:11px;color:var(--text-primary);background:var(--surface);border:1px solid #c9d5e6;border-radius:10px;font:inherit}.workbox textarea{min-width:0;resize:vertical}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:19px;margin:18px 0}.preview{max-height:230px;overflow:auto;padding:18px;background:#f0f3f8;border-radius:12px;font-size:13px;white-space:pre-wrap;word-break:break-word}.smalltitle{font-size:15px}.status{color:#1755c8;font-size:14px;font-weight:600}.summary{padding:12px;color:#075a48;background:#e2f8f0;border-radius:8px}.checks{display:grid;gap:9px;margin:22px 0}.checks label{display:flex;align-items:flex-start;gap:9px;font-size:14px}.checks input{margin-top:8px}.tool-actions{display:flex;flex-wrap:wrap;gap:10px}.editor-meta{margin:20px 0 8px;color:var(--text-secondary);font-size:13px;font-weight:700}.csv-grid-wrap{max-height:62vh;overflow:auto;border:1px solid var(--border);border-radius:10px}.csv-grid{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0}.csv-grid td,.csv-grid th{min-width:170px;padding:6px;background:var(--surface);border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:top}.csv-grid th{position:sticky;top:0;z-index:1;background:#f0f5fc}.csv-cell-input{width:100%;min-width:150px;padding:7px;color:var(--text-primary);background:transparent;border:1px solid transparent;border-radius:6px;font:inherit;font-size:13px}.csv-cell-input:focus,.csv-cell-input:hover{background:#fff;border-color:#9cb8ff}.csv-grid th .csv-cell-input{font-weight:800}.pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin-top:12px}.pagination button{padding:7px 12px;color:var(--text-primary);background:var(--surface);border:1px solid var(--border);border-radius:8px;font:inherit;cursor:pointer}.pagination button:disabled{opacity:.45;cursor:not-allowed}.validation-report{margin-top:24px}.validation-report h2{font-size:20px}.validation-list{display:grid;gap:8px;padding:0;list-style:none}.validation-list li{display:flex;align-items:flex-start;gap:10px;padding:10px;background:#f7f9fc;border:1px solid var(--border);border-radius:9px}.issue-badge{min-width:72px;padding:2px 6px;color:#fff;background:#5b687d;border-radius:5px;font-size:11px;font-weight:800;text-align:center}.issue-error{background:#b42318}.issue-warning{color:#573900;background:#f8d889}.issue-info{background:#1755c8}.file-picker-shell{position:relative}.file-picker{display:flex;align-items:center;gap:12px;width:100%;min-height:54px;padding:8px 10px;background:#f8fbff;border:2px dashed #b6c9e9;border-radius:12px;cursor:pointer}.file-picker-action{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:6px 12px;color:#fff;background:var(--primary);border-radius:8px;font-size:14px;font-weight:700;white-space:nowrap}.file-picker-name{min-width:0;overflow:hidden;color:var(--text-secondary);font-size:14px;text-overflow:ellipsis;white-space:nowrap}.workbox input.file-picker-input{position:absolute;inset:0;width:100%;height:100%;padding:0;opacity:0;background:transparent;border:0;cursor:pointer}.file-picker-shell:focus-within .file-picker{outline:3px solid var(--focus-ring);outline-offset:2px}.footer{padding:25px 0;color:var(--text-secondary);background:var(--surface);border-top:1px solid #dbe3ee;font-size:13px}.footerflex{display:flex;align-items:center;justify-content:space-between;gap:18px}.footerflex div{display:flex;gap:20px}@media (max-width:750px){.nav{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:12px 0}.brand{grid-column:1;grid-row:1}.language-select{grid-column:2;grid-row:1;margin-left:0}.nav nav{grid-column:1/-1;grid-row:2;width:100%;justify-content:space-between;gap:14px;overflow-x:auto}.nav nav a{font-size:12px;white-space:nowrap}.hero{padding:48px 0 34px}.hero-grid{grid-template-columns:1fr;gap:6px}.hero-grid:before{top:auto;right:84%;bottom:28%;font-size:18px}.hero-mascot{width:min(94%,360px);margin:-5px auto -30px}.tool-intro{grid-template-columns:minmax(0,1fr) 132px;gap:8px}.tool-intro-art{width:132px;height:132px}.tool-directory{padding:38px 0 44px}.workbox{padding:18px}.footerflex{flex-direction:column;align-items:flex-start}.beta-notice-inner{align-items:flex-start;flex-wrap:wrap}.beta-notice p{flex-basis:calc(100% - 64px)}.content.section{padding-top:24px}}@media (max-width:980px){.tool-feature-grid,.tool-mini-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:650px){.directory-heading{align-items:flex-start}.directory-count{margin-top:22px;white-space:nowrap}.directory-lead{max-width:38ch;font-size:14px}.tool-feature-grid,.tool-mini-grid{grid-template-columns:1fr}.tool-feature{grid-template-columns:minmax(0,1fr) 100px;min-height:170px;padding:16px}.tool-feature-art{width:100px;border-radius:16px}.tool-library{margin-top:25px;padding-top:19px}.tool-library-heading{align-items:flex-start;flex-direction:column;gap:1px}.tool-mini-card{grid-template-columns:56px minmax(0,1fr) 16px;min-height:78px}.tool-mini-art{width:56px;height:56px}}@media (max-width:360px){.container{width:calc(100% - 28px)}.nav{column-gap:8px}.brand{gap:6px;font-size:18px}.brandmark{width:36px;height:36px;border-radius:10px}.nav nav{gap:9px}.nav nav a{font-size:11px}.directory-heading{display:block}.directory-count{display:inline-flex;margin:10px 0 0}.tool-feature{grid-template-columns:minmax(0,1fr) 78px;gap:8px;padding:13px}.tool-feature-art{width:78px;border-radius:13px}.tool-mini-card{gap:8px;padding:8px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}