@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
:root{--ink:#173d38;--muted:#657571;--green:#24594c;--line:#e2e8e4;--paper:#fff;--gold:#e5b348;font-family:'Noto Sans JP',system-ui,sans-serif;color:var(--ink);font-size:16px}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,.map:focus-visible{outline:3px solid #bc6e13;outline-offset:4px}button{border:0;background:none}button:disabled{opacity:.35;cursor:default}a{color:var(--green)}.topbar{height:84px;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 32px;position:relative;z-index:6;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-align:left;padding:0;font-size:21px;font-weight:800;letter-spacing:.06em}.brand small{display:block;font-size:10px;letter-spacing:.24em;margin-top:4px;font-weight:600}.brand-mark{position:relative;background:var(--ink);color:white;width:43px;height:43px;border-radius:12px;display:grid;place-items:center;font-family:Georgia,serif;font-size:30px}.brand-mark span{position:absolute;color:var(--gold);font-size:22px;left:18px;top:-9px}.header-note{font-size:14px;letter-spacing:.07em}.quiet{font-size:14px;padding:10px}.quiet span{margin-left:12px}.workspace{height:calc(100dvh - 84px);position:relative;background:#50bfc9;overflow:hidden}.map{position:absolute;inset:0 0 0 355px;overflow:hidden;touch-action:none;cursor:grab;outline-offset:-5px!important}.map.dragging{cursor:grabbing}.world{position:absolute;left:0;top:0;width:1536px;height:1024px;transform-origin:0 0;will-change:transform}.world>img{width:100%;height:100%;object-fit:cover;user-select:none;pointer-events:none}.map-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 90px #126b6b18}.explorer{position:absolute;inset:0 auto 0 0;width:355px;background:#fff;z-index:4;border-right:1px solid #d1dfd9;box-shadow:5px 0 30px #173d3810}.panel{height:100%;overflow:auto;overscroll-behavior:contain;padding:28px 24px 20px;scrollbar-width:thin;scrollbar-color:#d2ddd6 transparent}.eyebrow{display:block;font-size:11px;letter-spacing:.18em;font-weight:700;color:#7b8982;margin-bottom:12px}.panel h1,.panel h2{font-size:27px;line-height:1.55;margin:0 0 10px;letter-spacing:.025em}.intro{font-size:14px;line-height:1.9;color:var(--muted);margin:0 0 20px}.total{font-size:12px;background:#eff5f0;display:inline-flex;align-items:center;gap:8px;border-radius:6px;padding:7px 10px;color:#426550;margin-bottom:24px}.total strong{font-size:15px}.section-label{display:flex;justify-content:space-between;align-items:center;margin:0 0 12px;font-size:13px;font-weight:700}.section-label span{font-size:12px;color:#8d9791;font-weight:400}.area-list{display:grid;gap:7px}.area-card{display:flex;align-items:center;text-align:left;width:100%;padding:12px 11px;border:1px solid var(--line);border-radius:11px;gap:12px;transition:background .15s,border .15s}.area-card:hover{background:#f2f7f3;border-color:#91b2a0}.area-num{font-size:12px;font-weight:700;display:grid;place-items:center;width:32px;height:36px;border-radius:8px;background:#edf3ed;flex-shrink:0}.area-card strong{display:block;font-size:14px;font-weight:600}.area-card small{display:block;font-size:12px;color:var(--muted);margin-top:4px}.arrow{margin-left:auto;font-size:21px;font-weight:400;color:#7e9488}.footnote{font-size:12px;line-height:1.8;color:#829087;margin-top:20px}.breadcrumbs{position:absolute;left:379px;top:20px;max-width:calc(100% - 420px);display:flex;align-items:center;gap:8px;padding:9px 15px;background:#fffffff2;box-shadow:0 3px 20px #12383018;border:1px solid #ffffffbd;border-radius:30px;z-index:3;font-size:13px;white-space:nowrap;overflow:auto;scrollbar-width:none}.breadcrumbs button{padding:4px 0;font-size:13px;font-weight:500}.breadcrumbs span{color:#7b8c82}.map-help{position:absolute;bottom:33px;left:calc(355px + (100% - 355px)/2);transform:translateX(-50%);border:1px solid #ffffff55;background:#164d42e8;color:white;text-align:center;line-height:1.7;white-space:nowrap;padding:10px 20px;border-radius:12px;font-size:14px;pointer-events:none;box-shadow:0 4px 24px #173d3820}.map-help span{font-size:11px;color:#cfdfd7;display:block;margin-top:2px}.map-tools{position:absolute;right:23px;bottom:56px;display:grid;background:#fff;border-radius:12px;padding:5px;box-shadow:0 4px 20px #17453830;z-index:3}.map-tools button{width:40px;height:40px;font-size:23px;border-radius:7px}.map-tools button:hover{background:#ecf3ee}.divider{height:1px;background:var(--line);margin:2px 6px}.map-credit{position:absolute;bottom:12px;right:23px;font-size:9px;letter-spacing:.1em;color:#103e39;background:#ffffffb5;padding:4px 8px;border-radius:4px}.map-credit span{padding-left:18px}.marker{position:absolute;transform:translate(-50%,-100%) scale(var(--counter-scale,1));transform-origin:50% 100%;display:flex;flex-direction:column;align-items:center;white-space:nowrap;filter:drop-shadow(0 4px 7px #1c443947);z-index:1;padding:0;transition:filter .16s}.marker:hover,.marker:focus-visible{z-index:3;filter:drop-shadow(0 5px 12px #123c3970)}.marker-body{display:flex;align-items:center;gap:9px;background:#fff;padding:10px 15px 10px 10px;border-radius:12px;color:var(--ink);border:2px solid white;font-size:14px;font-weight:700}.marker .pin-num{background:var(--ink);color:#fff;width:27px;height:27px;border-radius:8px;display:grid;place-items:center;font-size:11px}.marker .pin-count{background:#edf3ed;border-radius:4px;padding:1px 5px;color:#6a8173;font-size:11px;font-weight:400;margin-left:1px}.marker::after{content:'';border:7px solid transparent;border-top-color:white;margin-bottom:-12px}.marker:hover .marker-body{border-color:#173d38}.marker.person .marker-body{font-size:13px;max-width:215px;white-space:normal;text-align:left;padding:8px 11px;background:#fffcf2}.person .person-icon{color:#96651c;background:#f8eac9;border-radius:50%;width:30px;height:30px;display:grid;place-items:center;flex-shrink:0}.person-icon svg{width:18px;height:18px}.person::after{border-top-color:#fffcf2}.marker.selected .marker-body{background:var(--ink);color:white;border-color:var(--gold)}.marker.selected::after{border-top-color:var(--ink)}.back{display:flex;align-items:center;gap:7px;font-size:13px;padding:0;margin-bottom:20px;color:#62756b}.place-card{padding:17px 13px}.place-card .area-num{background:#faf1d8;color:#8f6f21}.job-list{display:grid;gap:9px}.job-card{text-align:left;border:1px solid var(--line);border-radius:11px;padding:15px;background:#fff;width:100%;transition:.15s}.job-card:hover,.job-card.active{border-color:#557b62;background:#f5f9f4}.job-card .job-category{font-size:11px;color:#7b8c80;display:flex;justify-content:space-between;gap:8px}.job-card h3{font-size:15px;line-height:1.65;margin:7px 0}.job-card p{font-size:13px;line-height:1.8;margin:0;color:var(--muted)}.new{color:#926b18!important;font-size:10px;letter-spacing:.08em;flex-shrink:0}.detail-badge{font-size:12px;display:inline-block;padding:5px 9px;border-radius:4px;background:#f9edce;color:#8a6417;margin-bottom:12px}.job-summary{font-size:16px;line-height:1.9;margin:13px 0 24px}.detail-section{border-top:1px solid var(--line);padding:20px 0 3px}.detail-section h3{font-size:13px;margin:0 0 10px;letter-spacing:.02em}.detail-section p{font-size:14px;line-height:1.85;margin:6px 0 14px}.detail-section .muted{font-size:12px;color:var(--muted)}.related{display:block;text-align:left;width:100%;font-size:14px;line-height:1.6;border-bottom:1px solid #eef1ec;padding:12px 1px;color:#35604d}.related:hover{text-decoration:underline}.source-list{display:grid;gap:10px}.source-list a{font-size:12px;line-height:1.7;text-decoration:none}.source-list a:hover{text-decoration:underline}.source-list small{color:#7e8d82;display:block}.detail-scene{padding:15px;background:#f1f5ef;border-radius:9px;font-size:14px;line-height:1.9;margin-bottom:16px}.detail-scene small{font-size:11px;display:block;color:#7c8a79;margin-bottom:5px;letter-spacing:.08em}.tags{display:flex;flex-wrap:wrap;gap:5px;margin:14px 0}.tags span{font-size:11px;color:#6f7d72;background:#f2f5ef;padding:4px 7px;border-radius:4px}.muted{color:var(--muted)}dialog{border:0;border-radius:20px;max-width:620px;width:calc(100% - 32px);max-height:85dvh;padding:38px;color:var(--ink);box-shadow:0 20px 100px #123c3950}dialog::backdrop{background:#173d3860;backdrop-filter:blur(4px)}dialog h2{font-size:26px;line-height:1.7}dialog h3{font-size:15px;margin-top:25px}dialog p{font-size:14px;line-height:1.9}.dialog-close{float:right;font-size:26px;position:sticky;top:0;background:white;border-radius:50%;width:40px;height:40px}.text-link{font-size:14px}.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}.no-script{position:fixed;inset:100px 20px auto;z-index:10;background:white;padding:30px}.map-loading-error{position:absolute;top:90px;left:30px;background:white;padding:20px;z-index:2;max-width:280px}.panel-title-row{display:flex;justify-content:space-between;align-items:center}.location-label{font-size:12px;line-height:1.8;color:var(--muted);margin-bottom:20px}
.panel .section-label{font-size:13px;line-height:1.6;letter-spacing:0;gap:10px}.section-label span{white-space:nowrap}
@media(min-width:1600px){.explorer{width:385px}.map{left:385px}.breadcrumbs{left:409px}.map-help{left:calc(385px + (100% - 385px)/2)}}
@media(max-width:850px){.topbar{height:70px;padding:0 18px}.header-note{display:none}.workspace{height:calc(100dvh - 70px)}.explorer{width:305px}.panel{padding:24px 18px}.map{left:305px}.breadcrumbs{left:321px;max-width:calc(100% - 340px)}.map-help{left:calc(305px + (100% - 305px)/2);font-size:12px;padding:8px 12px}.map-help span{display:none}.brand{font-size:18px}.map-tools{right:14px}}
@media(max-width:620px){.topbar{height:64px;padding:0 15px}.brand{font-size:17px;gap:9px}.brand small{font-size:9px;margin-top:2px}.brand-mark{width:35px;height:35px;font-size:25px}.brand-mark span{left:14px;top:-8px}.quiet{font-size:12px;padding:8px 0}.quiet span{display:none}.workspace{height:calc(100dvh - 64px)}.map{inset:0 0 44%}.explorer{inset:56% 0 0;width:100%;border:0;border-radius:20px 20px 0 0;box-shadow:0 -5px 30px #123b3930}.panel{padding:23px 20px 22px}.panel:before{content:'';position:absolute;top:8px;left:calc(50% - 20px);width:40px;height:4px;border-radius:4px;background:#dde5dd}.panel h1,.panel h2{font-size:23px;margin-bottom:8px}.eyebrow{font-size:10px;margin-bottom:6px}.intro{font-size:13px;line-height:1.7;margin-bottom:12px}.total{margin-bottom:15px;font-size:11px;padding:5px 8px}.area-list{grid-template-columns:1fr 1fr;gap:8px}.area-card{padding:10px 9px;gap:7px}.area-card strong{font-size:12px}.area-card small{font-size:10px}.area-card .area-num{font-size:10px;width:26px;height:30px}.area-card .arrow{font-size:15px}.breadcrumbs{left:12px;top:12px;max-width:calc(100% - 24px);font-size:12px;padding:5px 11px}.breadcrumbs button{font-size:12px}.map-tools{bottom:calc(44% + 15px);right:12px;border-radius:10px}.map-tools button{width:33px;height:33px;font-size:21px}.map-help{bottom:calc(44% + 18px);left:12px;transform:none;font-size:11px;border-radius:7px;padding:6px 10px;max-width:calc(100% - 80px);white-space:normal}.map-credit{display:none}.marker-body{font-size:12px;padding:7px 9px 7px 6px;gap:6px}.marker .pin-num{width:23px;height:23px;font-size:10px}.marker .pin-count{font-size:10px}.marker.person .marker-body{font-size:12px;max-width:190px}.detail-section p{font-size:14px}.back{margin-bottom:12px}.job-summary{margin:10px 0 20px}.job-list{grid-template-columns:1fr}.section-label{font-size:12px}dialog{padding:25px}.footnote{margin-top:15px}}
@media(max-width:620px){.marker:not(.person) .pin-count,.marker:not(.person) .pin-num{display:none}.marker:not(.person) .marker-body{padding:9px 8px;max-width:112px;white-space:normal;font-size:12px;line-height:1.4}.marker.person .marker-body{font-size:14px;max-width:235px}.map-help span{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}

/* Large catalog: bounded lists inside the existing illustrated map. */
.explorer{display:flex;flex-direction:column}.panel{height:auto;min-height:0;flex:1}.search-form{display:flex;gap:8px;padding:18px 20px 14px;border-bottom:1px solid var(--line);flex-shrink:0}.search-form input{width:0;min-width:0;flex:1;border:1px solid #b9c9c1;border-radius:8px;padding:10px 9px;font-size:14px;background:#f7faf7;color:var(--ink)}.search-form button{background:var(--ink);color:white;border-radius:8px;padding:10px 12px;font-size:14px}.list-filters{display:grid;gap:12px;margin:18px 0}.list-filters label{display:grid;gap:6px;font-size:14px}.list-filters select{font:inherit;width:100%;min-width:0;max-width:100%;padding:10px 8px;border:1px solid #bdcdc2;background:white;color:var(--ink);border-radius:7px}.list-filters select:focus-visible{outline:3px solid #bc6e13;outline-offset:2px}.result-count{font-size:14px;color:var(--muted)}.record-status{display:block;font-size:12px;line-height:1.8;color:#66756b;margin:5px 0}.pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:22px 0;font-size:14px}.pagination button{padding:12px 18px;background:#edf3ed;border:1px solid #bccdc1;border-radius:8px}.empty-results{padding:20px 0}.empty-results h2{font-size:18px}.empty-results p{line-height:1.8;font-size:16px}.panel .search-title{font-size:23px;overflow-wrap:anywhere}.total{flex-wrap:wrap}.job-card h3{font-size:16px}.job-card .job-category{font-size:12px}.detail-section h3{font-size:14px}.detail-section p,.intro{font-size:16px}.source-list a{font-size:14px}.panel .muted{font-size:13px;line-height:1.8}
@media(max-width:620px){.search-form{padding:17px 18px 10px;gap:8px}.search-form input{font-size:16px}.panel{padding-top:18px}.panel:before{display:none}.area-card strong{font-size:14px}.area-card small{font-size:12px}.area-card .area-num{display:none}.intro{font-size:14px}.total{font-size:12px}.search-form button{padding:10px}.list-filters{gap:10px}.marker:not(.person) .marker-body{max-width:120px}}

/* Screen-space labels: never scale or filter text with the bitmap. */
#markers{position:absolute;inset:0;pointer-events:none;overflow:hidden}.marker{transform:none;filter:none;transition:none;pointer-events:auto;max-width:230px}.marker:hover,.marker:focus-visible{filter:none}.marker-body{box-shadow:0 3px 12px #143f392d;white-space:normal;line-height:1.5}.marker[hidden]{display:none}.marker.person .marker-body{max-width:215px}.marker::after{position:absolute;left:calc(50% - 7px);bottom:-8px}.map-more{position:absolute;bottom:14px;left:14px;max-width:calc(100% - 90px);padding:11px 15px;background:white;border:1px solid #b6ccbc;border-radius:10px;box-shadow:0 3px 12px #143f392d;font-size:14px;z-index:3}.map-more[hidden]{display:none}.map-help{bottom:70px}.marker-body>span{overflow-wrap:anywhere}
@media(max-width:620px){.marker{max-width:155px}.marker.person .marker-body{max-width:155px;font-size:13px;padding:7px}.marker .person-icon{width:22px;height:22px}.map-more{font-size:12px;padding:9px 11px;bottom:12px;max-width:calc(100% - 70px)}.map-help{bottom:calc(44% + 66px)}}

.family-link{font-size:14px;line-height:1.8;text-align:left;background:#edf3ed;border:1px solid #c4d4c7;border-radius:8px;padding:12px;margin:14px 0;width:100%}.classification-detail{font-size:14px;line-height:1.85;margin:16px 0}.classification-detail summary{cursor:pointer;color:var(--green)}.classification-detail p{padding:12px;background:#f3f6f1;border-radius:8px}

/* The image covers the viewport; bounds prevent revealing its exterior. */
.workspace{background:#173d38}.map{user-select:none;-webkit-user-select:none;overscroll-behavior:none}.map .marker{cursor:grab;touch-action:none}.map.dragging,.map.dragging .marker{cursor:grabbing}.map.dragging .marker{transition:none}.brand small{font-size:13px;letter-spacing:.03em;font-weight:500;margin-top:2px}.brand{letter-spacing:.02em}
@media(max-width:620px){.brand small{font-size:12px}.brand{font-size:18px}}
.marker .pin-num,.marker .pin-count{flex-shrink:0;white-space:nowrap}
.marker{width:max-content}.marker-body{max-width:100%}

.explore-tools{display:flex;flex-wrap:wrap;gap:6px;padding:9px 16px;border-bottom:1px solid var(--line);flex-shrink:0}.explore-tools button{font-size:13px;padding:8px 9px;background:#edf3ed;border-radius:7px;white-space:nowrap}.explore-tools button:hover{background:#dfeadc}.explore-tools button[data-discover]{background:#173d38;color:white}.feature-choices{display:grid;gap:9px}.feature-choices button{text-align:left;padding:14px;border:1px solid var(--line);border-radius:10px;background:white}.feature-choices strong{display:block;font-size:15px;line-height:1.6}.feature-choices small{display:block;margin-top:5px;font-size:12px;color:var(--muted)}.interest-choices{grid-template-columns:1fr 1fr}.save-job{background:#fff7df;border:1px solid #d5b570;border-radius:8px;font-size:15px;padding:11px 16px;margin:4px 0 14px}.save-job[aria-pressed=true]{background:#173d38;color:#fff4c8;border-color:#173d38}.discovery-note{font-size:14px;background:#edf3ed;padding:10px;border-radius:7px;line-height:1.7}.journey{font-size:14px;line-height:1.8;margin:15px 0}.journey button{text-align:left;font-size:14px;text-decoration:underline;padding:5px 0}.journey summary{cursor:pointer}.journey li{padding:3px 0}
@media(max-width:620px){.explore-tools{flex-wrap:nowrap;overflow-x:auto;padding:6px 14px;gap:5px}.explore-tools button{font-size:13px;padding:8px}.search-form{padding-bottom:8px}.feature-choices button{padding:12px}}

/* ブランドアイコン（働くシュナウザー） */
img.brand-mark{display:block;object-fit:cover;background:none;padding:0;box-shadow:0 1px 3px rgba(0,0,0,.18)}
/* 広告枠 */
.ad-slot{position:relative;margin:18px 0;padding:12px;border:1px dashed var(--line);border-radius:12px;text-align:center;background:#fafaf7}
.ad-slot p{margin:4px 0 8px;font-size:13px;color:var(--muted)}
.ad-slot img{max-width:100%;height:auto}
.ad-label{position:absolute;top:6px;left:8px;font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:4px;padding:0 5px;background:#fff}
.ad-pixel{position:absolute;width:1px;height:1px;opacity:0}
