:root{--color-background: #fbf7ff;--color-surface: #ffffff;--color-text: #1f1b3a;--color-text-secondary: #6b6790;--color-accent-primary: #ff3b8e;--color-accent-secondary: #00bfd8;--color-accent-tertiary: #ffc93c;--color-border: #e4deec;--color-surface-subtle: #f7f2fa;--color-disabled: #ece8f0;--color-danger: #9f1239;--color-danger-surface: #fff0f5;--shadow-panel: 0 .35rem 1.25rem rgb(31 27 58 / 7%);color:var(--color-text);background:var(--color-background);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Yu Gothic UI,Yu Gothic,Meiryo,sans-serif;font-synthesis:none}*{box-sizing:border-box}html{background:var(--color-background)}body{margin:0;min-width:20rem;min-height:100dvh;color:var(--color-text);background:var(--color-background)}button,input{font:inherit}button,input[type=file]{min-height:2.875rem}button{border:2px solid var(--color-accent-primary);border-radius:999px;padding:.65rem 1.25rem;color:var(--color-text);background:var(--color-accent-primary);font-weight:800;cursor:pointer}button:hover:not(:disabled){opacity:.88}button.secondary{border-color:var(--color-border);color:var(--color-text);background:var(--color-surface)}button:disabled{border-color:var(--color-border);color:var(--color-text-secondary);background:var(--color-disabled);cursor:not-allowed}button:focus-visible,input:focus-visible{outline:3px solid var(--color-text);outline-offset:3px}h1,h2,h3,p{margin-top:0}h1,h2,h3{color:var(--color-text);overflow-wrap:normal;word-break:keep-all;text-wrap:balance}h1{margin-bottom:1rem;font-size:clamp(1.65rem,7.5vw,3.6rem);line-height:1.05;letter-spacing:-.035em}.app-title>span{white-space:nowrap}h2{margin-bottom:1.25rem;font-size:clamp(1.15rem,5vw,1.5rem);line-height:1.3;letter-spacing:.025em}h3{margin-bottom:.75rem;font-size:1rem;line-height:1.4;letter-spacing:.015em}p{max-width:44em;line-height:1.75;overflow-wrap:anywhere;word-break:normal;text-wrap:pretty}@supports (word-break: auto-phrase){p{word-break:auto-phrase}}label{display:block;margin-bottom:.6rem;font-weight:800}input[type=file]{display:block;width:100%;min-width:0;max-width:100%;overflow:hidden;padding:.5rem;border:2px solid var(--color-border);border-radius:1rem;color:var(--color-text-secondary);background:var(--color-surface)}input[type=file]::file-selector-button{min-height:2.5rem;margin-right:.75rem;border:0;border-radius:999px;padding:.5rem 1rem;color:var(--color-text);background:var(--color-accent-primary);font:inherit;font-weight:800;cursor:pointer}input[type=file]:disabled::file-selector-button{color:var(--color-text-secondary);background:var(--color-disabled);cursor:not-allowed}.app-shell{width:calc(100% - 2rem);max-width:62rem;margin-inline:auto;padding-block:clamp(1.5rem,5vw,4rem) 4rem}.app-header{margin-bottom:2rem}.app-introduction{max-width:42em;margin-bottom:0;color:var(--color-text-secondary);font-size:clamp(1rem,2.5vw,1.125rem)}.privacy-note{color:var(--color-text);white-space:nowrap}.panel{margin-top:1.25rem;padding:clamp(1.25rem,4vw,2rem);border:1px solid var(--color-border);border-radius:1.5rem;background:var(--color-surface);box-shadow:var(--shadow-panel)}.view-heading:focus-visible{outline:3px solid var(--color-accent-primary);outline-offset:.35rem}.helper-text,.selection-summary,.empty-state{color:var(--color-text-secondary)}.helper-text{margin-block:.65rem 1.25rem;font-size:.925rem}.button-row{display:flex;flex-wrap:wrap;gap:.75rem}.selection-summary{margin-block:1.25rem 0}.dictionary-status{max-width:none;margin-block:0 1rem;color:var(--color-text-secondary);font-size:.925rem}.dictionary-status:before{display:inline-block;width:.65rem;height:.65rem;margin-right:.5rem;border-radius:50%;background:var(--color-accent-tertiary);content:""}.dictionary-status.is-ready:before{background:var(--color-accent-secondary)}.dictionary-status.is-error:before{background:var(--color-danger)}.folder-summary{margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.folder-list{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.folder-list li{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.8rem 1rem;border-radius:.9rem;background:var(--color-surface-subtle)}.folder-name{min-width:0;overflow-wrap:anywhere;font-weight:750}.folder-image-count{color:var(--color-text-secondary);white-space:nowrap}.processing-view{text-align:center}.circular-progress{position:relative;display:grid;width:min(17rem,78vw);margin:1rem auto 1.5rem;aspect-ratio:1;place-items:center}.progress-ring{display:block;width:100%;height:100%;overflow:visible}.progress-ring-track,.progress-ring-value{fill:none;stroke-width:8}.progress-ring-track{stroke:var(--color-surface-subtle)}.progress-ring-value{stroke:var(--color-accent-primary);stroke-dasharray:100;stroke-linecap:round;transform:rotate(-90deg);transform-box:fill-box;transform-origin:center;transition:stroke-dashoffset .16s ease-out}.progress-ring.is-indeterminate .progress-ring-value{stroke-dasharray:26 74;stroke-dashoffset:0!important}.progress-ring.is-error .progress-ring-value{stroke:var(--color-danger);stroke-dasharray:100}.progress-center{position:absolute;display:grid;max-width:70%;margin:0;place-items:center;pointer-events:none}.progress-center strong{font-size:clamp(2rem,10vw,3.75rem);font-weight:900;font-variant-numeric:tabular-nums;line-height:1;letter-spacing:-.04em;white-space:nowrap}.progress-center span{margin-top:.55rem;color:var(--color-text-secondary);font-size:.875rem;font-weight:800}.phase-status{max-width:none;margin:0 auto 1rem;text-align:center}.phase-status strong,.phase-status>span{display:block}.phase-status strong{margin-bottom:.15rem;font-size:1.05rem}.phase-status>span{color:var(--color-text-secondary)}.error-message{max-width:none;padding:.9rem 1rem;border-left:.35rem solid var(--color-danger);border-radius:.75rem;color:var(--color-danger);background:var(--color-danger-surface);font-weight:700}.result-stats{margin:0}.result-stats>div{display:flex;gap:.75rem;align-items:baseline}.result-stats dt{color:var(--color-text-secondary);font-size:.9rem}.result-stats dd{margin:0;color:var(--color-text);font-weight:800}.result-stats{margin-bottom:2rem;padding:1rem 1.15rem;border-radius:1rem;background:var(--color-surface-subtle)}.result-stats dd{font-size:1.6rem}.ranking-heading{display:flex;flex-wrap:wrap;gap:.4rem;align-items:baseline;margin-bottom:1rem;font-size:1.25rem}.ranking-heading span{color:var(--color-text-secondary);font-size:.75em}.numeric-data,.ranking-count,.ranking-rank{font-variant-numeric:tabular-nums}.ranking-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin:0;padding:0;list-style:none}.ranking-item{min-width:0;margin:0}.ranking-item p{margin-bottom:0}.ranking-rank{font-weight:850}.ranking-rank-group{display:flex;gap:.6rem;align-items:center;min-width:0}.rank-icon{width:2.65rem;height:2.65rem;flex:none}.crown-icon{color:var(--color-accent-primary)}.ranking-2 .rank-icon{color:var(--color-accent-secondary)}.ranking-3 .rank-icon{color:var(--color-accent-tertiary)}.rank-icon-detail{stroke:var(--color-surface)}.ranking-name{min-width:0;overflow-wrap:anywhere;font-weight:800;line-height:1.25}.ranking-count{display:flex;gap:.3rem;align-items:baseline;line-height:1;white-space:nowrap}.ranking-count-unit{font-size:.45em;font-weight:800}.ranking-1{display:grid;grid-column:1 / -1;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1.5rem;align-items:end;min-height:14rem;padding:clamp(1.5rem,5vw,2.5rem);border-radius:1.5rem;color:var(--color-surface);background:var(--color-accent-primary);box-shadow:var(--shadow-panel)}.ranking-1 .ranking-rank-group,.ranking-1 .ranking-rank,.ranking-1 .ranking-name,.ranking-1 .ranking-count{color:var(--color-surface)}.ranking-1 .ranking-rank-group{align-self:start}.ranking-1 .rank-icon{width:3.5rem;height:3.5rem;padding:.55rem;border-radius:50%;color:var(--color-accent-primary);background:var(--color-surface)}.ranking-1 .ranking-rank{font-size:1.25rem}.ranking-1 .ranking-name{grid-column:1;font-size:clamp(1.5rem,5vw,2.25rem)}.ranking-1 .ranking-count{grid-column:2;grid-row:1 / span 2;align-self:center;font-size:clamp(3.5rem,10vw,5.5rem);font-weight:900}.ranking-2,.ranking-3{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem 1rem;align-items:end;min-height:9.5rem;padding:1.25rem;border:1px solid var(--color-border);border-top-width:.45rem;border-radius:1.15rem;background:var(--color-surface)}.ranking-2{border-top-color:var(--color-accent-secondary)}.ranking-3{border-top-color:var(--color-accent-tertiary)}.ranking-2 .ranking-rank-group,.ranking-3 .ranking-rank-group{grid-column:1 / -1}.ranking-2 .ranking-rank,.ranking-3 .ranking-rank{color:var(--color-text-secondary)}.ranking-2 .ranking-name,.ranking-3 .ranking-name{font-size:1.2rem}.ranking-2 .ranking-count,.ranking-3 .ranking-count{justify-self:end;font-size:2.25rem;font-weight:900}.ranking-4,.ranking-5{display:grid;grid-column:1 / -1;grid-template-columns:2.5rem minmax(0,1fr) auto;gap:.75rem;align-items:center;padding:1rem .25rem;border-bottom:1px solid var(--color-border)}.ranking-4 .ranking-rank,.ranking-5 .ranking-rank{color:var(--color-text-secondary)}.ranking-4 .ranking-rank-group,.ranking-5 .ranking-rank-group{justify-content:center}.ranking-4 .ranking-count,.ranking-5 .ranking-count{justify-self:end;font-size:1.25rem;font-weight:850}.empty-state{max-width:none;margin-bottom:0;padding:1rem;border-radius:1rem;background:var(--color-surface-subtle)}.view-actions{margin-top:1.5rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}[hidden]{display:none!important}@keyframes progress-spin{to{transform:rotate(270deg)}}@media(prefers-reduced-motion:no-preference){.progress-ring.is-indeterminate.is-visible .progress-ring-value{animation:progress-spin 1.15s linear infinite}}@media(max-width:36rem){@supports (word-break: auto-phrase){p{overflow-wrap:anywhere;word-break:normal}}.app-shell{width:calc(100% - 1rem);padding-block:1rem 2rem}.panel{padding:1rem;border-radius:1.15rem}.button-row{display:grid}.button-row button{width:100%}.ranking-list{grid-template-columns:1fr}.ranking-1,.ranking-2,.ranking-3,.ranking-4,.ranking-5{grid-column:1}.ranking-1{grid-template-columns:1fr;min-height:13rem}.ranking-1 .ranking-rank-group,.ranking-1 .ranking-name,.ranking-1 .ranking-count{grid-column:1;grid-row:auto}.ranking-1 .ranking-count{justify-self:end}.ranking-2,.ranking-3{min-height:8.5rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.progress-ring.is-indeterminate .progress-ring-value{animation:none}}
