@font-face{font-family:BIZ UDP Gothic;src:url(/assets/BIZUDPGothic-Regular-ChYpL25h.woff2) format("woff2"),url(/assets/BIZUDPGothic-Regular-ChYpL25h.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:BIZ UDP Gothic;src:url(/assets/BIZUDPGothic-Bold-BJYHM48A.woff2) format("woff2"),url(/assets/BIZUDPGothic-Bold-BJYHM48A.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}:root{--font-body: "BIZ UDP Gothic", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--font-display: "BIZ UDP Gothic", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;--ink: #19140d;--muted: #7a6d5f;--muted-dark: #5c5146;--accent: #f8c677;--accent-soft: #fde6bd;--accent-muted: #f4d5a5;--accent-ink: #5b3d12;--surface: #fff3dc;--line: #f2dec3;--shadow-soft: 0 16px 32px rgba(26, 32, 36, .08);--shadow-strong: 0 24px 40px rgba(12, 16, 18, .18);font-family:var(--font-body);color:var(--ink);background-color:#fef7eb}*{box-sizing:border-box}html,body{height:100%}body{margin:0;min-height:100vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background-color:#fef0d2}a{color:inherit}button,input,select{font-family:inherit}#root{min-height:100vh;background-color:#fef0d2}.page{min-height:100vh;width:100%;max-width:1600px;margin-inline:auto;padding:clamp(20px,3vw,36px);display:flex;flex-direction:column;gap:clamp(20px,3vw,40px);--split-left: 1.1fr;--split-right: .9fr;--split-gap: clamp(16px, 3vw, 28px);--motion-ease-standard: cubic-bezier(.22, 1, .36, 1);--motion-ease-soft: cubic-bezier(.25, .1, .25, 1);--motion-duration-fast: .18s;--motion-duration-medium: .28s;--motion-duration-slow: .38s;touch-action:pan-y}.firestore-read-debug{margin:16px auto 0;width:min(1080px,100%);border:1px solid rgba(36,42,66,.2);border-radius:12px;padding:12px 14px;background:#fffffff5;color:#1f2438;font-size:.82rem}.firestore-read-debug h4{margin:0 0 6px;font-size:.85rem}.firestore-read-debug p{margin:0 0 8px}.firestore-read-debug ul{margin:0;padding-left:18px}.firestore-read-debug li{line-height:1.35}.hero{animation:floatIn .8s ease-out both}.hero-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(12px,2.4vw,22px);align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:clamp(20px,3vw,32px);box-shadow:var(--shadow-soft)}.hero-copy{height:100%;padding:0}.eyebrow{display:none}.title-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.title-stack{flex:1 1 auto;min-width:0}.hero-mascot{width:clamp(96px,15vw,168px);flex:0 0 auto;flex-shrink:0;align-self:flex-start;pointer-events:none;filter:drop-shadow(0 10px 18px rgba(213,124,37,.18));animation:heroMascotFloat 4.8s ease-in-out infinite}.hero-mascot-image{display:block;width:100%;height:auto;object-fit:contain;opacity:.86;filter:saturate(.88) contrast(.97)}.hero h1{font-family:var(--font-display);font-size:clamp(32px,4vw,52px);line-height:1.05;margin:0}.hero h1 span{display:block;font-size:clamp(16px,2vw,22px);font-family:var(--font-body);color:var(--muted);margin-top:8px}.lead{margin:16px 0 0;color:var(--muted-dark);font-size:16px;line-height:1.7}.hero-meta{display:flex;flex-wrap:wrap;gap:18px}.hero-meta.hero-meta-right{margin-top:14px;justify-content:flex-end;text-align:right;padding-right:6px}.hero-meta-inline span,.hero-meta-inline strong{display:inline-block;margin:0}.hero-meta div{display:grid;gap:4px}.hero-meta .hero-meta-inline{display:inline-flex;align-items:baseline;gap:8px;white-space:nowrap}.hero-meta span{font-size:11px;color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.hero-meta strong{font-size:14px;color:var(--ink)}.search-panel{display:flex;flex-direction:column;gap:16px;background:#fff6e6;border:1px solid var(--line);border-radius:20px;padding:clamp(16px,2.4vw,24px);box-shadow:var(--shadow-soft);align-self:stretch}.search-main{display:flex;gap:12px;flex-wrap:wrap}.search-main input{flex:1 1 220px;min-width:0;min-height:46px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:#fffdf7;font-size:15px;line-height:1.3;-webkit-appearance:none;appearance:none}.search-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;align-items:end}.filter{display:flex;flex-direction:column;gap:8px;min-width:0}.filter label{font-size:13px;color:var(--muted)}.filter select{width:100%;min-height:46px;padding:12px 34px 12px 14px;border-radius:12px;border:1px solid var(--line);background:#fff;font-size:14px;line-height:1.3;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--muted-dark) 50%),linear-gradient(135deg,var(--muted-dark) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% - 2px),calc(100% - 12px) calc(50% - 2px);background-size:6px 6px,6px 6px;background-repeat:no-repeat}.filter-inline{display:flex;flex-direction:column;gap:8px;justify-content:center;min-width:0}.toggle{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--muted-dark)}.toggle input{width:18px;height:18px;margin:0;flex-shrink:0;accent-color:var(--accent-muted)}.search-actions{display:flex;flex-direction:column;gap:8px}.search-buttons{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.search-left,.search-right{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.location-button{display:inline-flex;align-items:center;gap:8px}.location-button-icon{display:inline-flex;width:16px;height:16px;color:var(--accent-ink)}.location-button-icon svg{width:100%;height:100%}.location-note{margin:0;font-size:12px;color:var(--muted-dark)}.location-note.error{color:#7a3f12}.results-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px;padding-top:10px}.results-head h2{margin:0 0 4px;font-family:var(--font-display)}.results-head p{margin:0;color:var(--muted)}.distance-note{margin:0;color:var(--accent-ink);font-size:13px}.prefecture-filter{display:inline-flex;align-items:center;gap:10px;padding:8px 12px;border-radius:999px;border:1px solid var(--line);background:#fff6e6;font-size:12px;color:var(--muted-dark)}.prefecture-filter button{border:1px solid var(--line);background:#fff2d9;border-radius:999px;padding:6px 10px;font-size:12px;color:var(--accent-ink);cursor:pointer}.results-body{display:grid;grid-template-columns:minmax(0,var(--split-left)) minmax(0,var(--split-right));gap:var(--split-gap);align-items:start;transition:opacity var(--motion-duration-medium) var(--motion-ease-standard),transform var(--motion-duration-medium) var(--motion-ease-standard);transform-origin:top center}.results-list{background:#fffaf3;border-radius:20px;padding:clamp(16px,2.2vw,24px);border:1px solid var(--line);box-shadow:var(--shadow-soft);display:flex;flex-direction:column;gap:12px;min-height:620px;box-sizing:border-box;transition:opacity var(--motion-duration-medium) var(--motion-ease-standard),box-shadow var(--motion-duration-medium) var(--motion-ease-soft),transform var(--motion-duration-medium) var(--motion-ease-standard)}.results-content{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:0;animation:resultsSwapIn .32s var(--motion-ease-standard) both;transition:opacity var(--motion-duration-medium) var(--motion-ease-soft),transform var(--motion-duration-medium) var(--motion-ease-standard)}.results-content.is-loading{animation-duration:.18s}.results-content.is-loading .list-body{opacity:.48;filter:saturate(.88)}.list-body-shell{position:relative}.list-header{display:grid;grid-template-columns:minmax(0,2.6fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1.2fr);gap:12px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--line)}.list-body{display:flex;flex-direction:column}.result-row{display:grid;grid-template-columns:minmax(0,2.6fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1.2fr);align-items:stretch;gap:12px;padding:16px 0;border-bottom:1px solid var(--line);animation:rowIn .26s var(--motion-ease-standard) both;animation-delay:calc(var(--row-index, 0) * 22ms);cursor:pointer;transition:background var(--motion-duration-fast) var(--motion-ease-soft),transform var(--motion-duration-fast) var(--motion-ease-soft)}.result-row:last-child{border-bottom:none}.result-row:hover{background:#fff1d666;transform:translateY(-1px)}.result-row:focus-visible{outline:2px solid rgba(248,198,119,.9);outline-offset:4px}.result-row.is-selected{background:#f8c67733;border-radius:16px;padding-left:12px;padding-right:12px}.result-title{display:grid;gap:6px;min-width:0}.category{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0}.result-title strong{font-size:16px;line-height:1.32;min-height:2.64em;max-height:2.64em;overflow-wrap:anywhere;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.detail{font-size:12px;line-height:1.3;min-height:1.3em;max-height:1.3em;color:var(--muted);overflow-wrap:anywhere;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1}.detail.is-empty{visibility:hidden}.result-distance{display:grid;align-content:center;gap:6px;font-size:13px;color:var(--muted-dark);min-width:0}.result-distance .prefecture{font-weight:600;color:var(--ink)}.result-distance .distance-value{font-size:12px;color:var(--muted)}.result-meta{display:contents}.result-tags{display:flex;flex-direction:column;justify-content:center;gap:6px;align-items:flex-start;min-width:0}.fee{font-size:12px;color:var(--muted-dark)}.result-actions{display:flex;flex-direction:column;justify-content:center;gap:8px;align-items:stretch;min-width:0}.link-button{display:inline-flex;align-items:center;justify-content:center;width:100%;padding:8px 12px;border-radius:12px;border:1px solid rgba(248,198,119,.6);background:var(--accent-soft);color:var(--accent-ink);font-size:13px;font-weight:600;text-decoration:none;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;max-width:100%;white-space:normal;text-align:center}.link-button:hover{transform:translateY(-1px);box-shadow:0 10px 18px #986a272e}.link-button.secondary{background:#fff3d7;border-color:var(--line)}.list-header span{min-width:0}.link-disabled{color:var(--muted);font-weight:600;font-size:13px}.results-status{margin-top:14px;padding:12px 16px;border-radius:14px;border:1px dashed var(--line);background:#fff6e6;color:var(--muted-dark);font-size:14px;animation:contentFadeIn .28s var(--motion-ease-standard) both}.results-status.error{background:#fff1e7;color:#7a3f12;border-color:#b07a4666}.pagination{display:flex;justify-content:center;align-items:center;margin-top:16px;font-size:13px;color:var(--muted);animation:contentFadeIn .28s var(--motion-ease-standard) both}.results-skeleton{display:grid;gap:0}.results-skeleton-row{display:grid;grid-template-columns:minmax(0,2.6fr) minmax(0,1fr) minmax(0,.9fr) minmax(0,1.2fr);gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}.results-skeleton-row:last-child{border-bottom:none}.results-skeleton-block{display:block;height:14px;border-radius:999px;background:linear-gradient(90deg,#f5e1c0bf,#fff6e6f2,#f5e1c0bf);background-size:200% 100%;animation:skeletonPulse 1.1s ease-in-out infinite}.results-skeleton-block.title{width:78%}.results-skeleton-block.meta{width:86%}.results-skeleton-block.badge{width:70%}.results-skeleton-block.action{width:88%}.pagination-bar{display:flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border-radius:18px;background:#fff6e6;border:1px solid var(--line);box-shadow:var(--shadow-soft);flex-wrap:wrap}.pager-button,.page-number{min-width:44px;height:36px;border:1px solid rgba(231,197,140,.7);background:#fff;color:var(--accent-ink);padding:0 12px;border-radius:12px;font-size:12px;font-weight:600;cursor:pointer;transition:background .2s ease,transform .2s ease,box-shadow .2s ease}.pager-button:hover{background:#fff2d9;box-shadow:0 6px 12px #986a271f;transform:translateY(-1px)}.page-number{cursor:default;background:var(--accent-soft);border-color:#f8c677b3;box-shadow:inset 0 1px #fffc}.page-number.is-active{color:var(--accent-ink)}.pager-button[disabled],.page-number[disabled]{opacity:.5;cursor:not-allowed;box-shadow:none;transform:none}.pagination .ghost[disabled]{opacity:.5;cursor:not-allowed}.ghost{border:1px solid var(--line);background:#fff2d9;padding:10px 16px;border-radius:999px;cursor:pointer;color:var(--accent-ink)}.primary{border:1px solid rgba(248,198,119,.6);background:var(--accent-soft);padding:10px 18px;border-radius:999px;cursor:pointer;color:var(--accent-ink);font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.primary:hover{transform:translateY(-1px);box-shadow:0 10px 18px #986a272e}.map-panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:clamp(16px,2.2vw,24px);box-shadow:var(--shadow-soft);display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-height:620px;overflow:hidden;box-sizing:border-box;transition:height var(--motion-duration-medium) var(--motion-ease-standard),box-shadow var(--motion-duration-medium) var(--motion-ease-soft),transform var(--motion-duration-medium) var(--motion-ease-standard)}.map-head{display:flex;flex-direction:column;gap:12px}.map-head h3{margin:0 0 6px;font-family:var(--font-display);font-size:22px}.map-head p{margin:0;color:var(--muted);font-size:13px}.map-stats{display:flex;flex-wrap:wrap;gap:12px}.map-stats div{display:grid;gap:4px;background:#fffaf3;border-radius:14px;border:1px solid var(--line);padding:10px 14px;min-width:120px}.map-stats span{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.12em}.map-stats strong{font-size:14px;color:var(--ink)}.map-canvas{position:relative;background:#f7f2e8;border-radius:18px;border:1px solid var(--line);padding:12px;height:100%;min-height:260px;display:flex;flex-direction:column;gap:8px;overflow:hidden;transition:transform var(--motion-duration-medium) var(--motion-ease-standard),box-shadow var(--motion-duration-medium) var(--motion-ease-soft)}.map-container{flex:1;min-height:320px;border-radius:16px;overflow:hidden;background:#fff}.map-placeholder{flex:1;min-height:320px;border-radius:16px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted-dark);text-align:center;padding:12px}.map-placeholder.error{color:#7a3f12}.jp-map-geo{flex:1 1 auto;min-height:0;height:100%;border-radius:16px;background:linear-gradient(150deg,#fffdf7,#fff4de 55%,#fff9ef);position:relative;overflow:hidden;touch-action:none;cursor:grab;transition:box-shadow var(--motion-duration-medium) var(--motion-ease-soft),transform var(--motion-duration-medium) var(--motion-ease-standard)}.jp-map-geo.is-loading{box-shadow:inset 0 0 0 1px #f8c67738}.jp-map-geo:after{content:"";position:absolute;inset:0;z-index:0;background:radial-gradient(circle at 20% 20%,rgba(248,198,119,.18),transparent 48%),radial-gradient(circle at 75% 70%,rgba(248,198,119,.12),transparent 55%);pointer-events:none}.jp-map-svg{width:100%;height:100%;display:block;position:relative;z-index:1;animation:contentFadeIn var(--motion-duration-medium) var(--motion-ease-standard) both;opacity:1;transform:scale(1);filter:none;transition:opacity var(--motion-duration-slow) var(--motion-ease-soft),transform var(--motion-duration-slow) var(--motion-ease-standard),filter var(--motion-duration-slow) var(--motion-ease-soft)}.jp-map-geo.is-loading .jp-map-svg{opacity:.34;transform:scale(1.01);filter:saturate(.82) blur(.2px)}.jp-map-shape{fill:rgba(248,198,119,var(--shape-alpha, .2));stroke:#bd9660e6;stroke-width:.3;cursor:pointer;transition:fill var(--motion-duration-fast) var(--motion-ease-soft),stroke var(--motion-duration-fast) var(--motion-ease-soft),stroke-width var(--motion-duration-fast) var(--motion-ease-soft)}.jp-map-shape:hover{fill:#f8c67773}.jp-map-shape.is-selected{stroke:#d6a04df2;stroke-width:.5}.jp-map-shape.is-empty{fill:#ffffff73}.jp-map-markers{pointer-events:none}.jp-map-marker{pointer-events:none;cursor:default;transition:opacity var(--motion-duration-fast) var(--motion-ease-soft)}.jp-map-marker-dot{fill:#f8c677e6;stroke:none;stroke-width:0;transition:fill var(--motion-duration-fast) var(--motion-ease-soft),stroke var(--motion-duration-fast) var(--motion-ease-soft)}.jp-map-marker.is-selected .jp-map-marker-dot{fill:#f8c677;stroke:none}.jp-map-marker.is-empty .jp-map-marker-dot{fill:#f2e2c9cc;stroke:none}.jp-map-marker-text{font-size:4px;font-weight:500;fill:var(--accent-ink);text-anchor:middle;dominant-baseline:central;alignment-baseline:middle;paint-order:stroke;stroke:#ffffffe6;stroke-width:2px}.map-zoom-controls{position:absolute;right:12px;top:12px;display:grid;gap:6px;z-index:4}.map-zoom-controls button{border:1px solid var(--line);background:#fffaf3;color:var(--accent-ink);border-radius:10px;padding:6px 10px;font-size:12px;cursor:pointer;box-shadow:var(--shadow-soft);transition:background var(--motion-duration-fast) var(--motion-ease-soft),transform var(--motion-duration-fast) var(--motion-ease-soft),box-shadow var(--motion-duration-fast) var(--motion-ease-soft)}.map-zoom-controls button:hover{background:#fff2d9;transform:translateY(-1px);box-shadow:0 8px 14px #986a2724}.map-info{position:absolute;left:14px;bottom:14px;top:auto;transform:none;z-index:5;max-width:min(360px,78%);max-height:60%;background:#fffaf3;border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-soft);animation:surfacePopIn var(--motion-duration-medium) var(--motion-ease-standard) both}.map-info-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.map-info-head h4{margin:0;font-size:14px;color:var(--ink)}.map-info-head p{margin:4px 0 0;font-size:12px;color:var(--muted)}.map-info-actions{display:flex;flex-wrap:wrap;gap:8px}.map-info-actions .ghost,.map-info-actions .primary{padding:6px 12px;font-size:12px}.map-info-body{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));overflow-y:auto;padding-right:2px;flex:1 1 auto;min-height:0}.map-info-section h5{margin:0 0 6px;font-size:12px;color:var(--muted-dark)}.map-info-list{list-style:none;margin:0;padding:0;display:grid;gap:4px;max-height:none;font-size:12px;color:var(--muted-dark)}.map-info-list li{display:block}.map-org-button{width:100%;display:flex;justify-content:space-between;gap:8px;align-items:flex-start;border:1px solid var(--line);background:#fffaf3;color:var(--muted-dark);padding:6px 8px;border-radius:10px;cursor:pointer;text-align:left;font:inherit}.map-org-name{flex:1 1 auto;min-width:0;line-height:1.35;overflow-wrap:anywhere}.map-org-count{flex:0 0 auto;min-width:3.4em;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;align-self:center}.map-org-button:hover{background:#fff2d9;color:var(--ink)}.map-info-empty{margin:0;font-size:12px;color:var(--muted)}.map-info-note{margin:0;font-size:11px;color:var(--muted)}.map-tooltip{position:absolute;transform:translate(10px,-12px);background:#fffdf7;border:1px solid var(--line);border-radius:10px;padding:6px 8px;font-size:11px;color:var(--muted-dark);display:grid;gap:2px;pointer-events:none;box-shadow:var(--shadow-soft);z-index:6;animation:contentFadeIn var(--motion-duration-fast) var(--motion-ease-soft) both}.map-tooltip strong{font-size:12px;color:var(--ink)}.jp-map-empty{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:var(--muted-dark);text-align:center;padding:12px;z-index:2;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity var(--motion-duration-medium) var(--motion-ease-soft),transform var(--motion-duration-medium) var(--motion-ease-standard)}.jp-map-empty.is-visible{opacity:1;transform:translateY(0)}.jp-map-empty.error{color:#7a3f12}.map-legend{display:grid;gap:4px;font-size:11px;color:var(--muted)}.map-list h4{margin:0 0 6px;font-size:14px;color:var(--muted-dark)}.map-list{display:none}.map-list ul{list-style:none;margin:0;padding:0;display:grid;gap:0}.map-list-empty{margin:0;font-size:13px;color:var(--muted)}.map-list-note{margin:0 0 8px;font-size:12px;color:var(--muted)}.map-list li{font-size:13px;color:var(--muted-dark);border-bottom:1px solid var(--line);animation:rowIn var(--motion-duration-medium) var(--motion-ease-standard) both;animation-delay:calc(var(--map-list-index, 0) * 22ms)}.map-list li:last-child{border-bottom:none}.prefecture-row{width:100%;display:grid;grid-template-columns:minmax(0,1.4fr) auto auto;gap:8px;align-items:center;border:none;background:transparent;color:var(--muted-dark);padding:8px 0;cursor:pointer;text-align:left;font:inherit;transition:background var(--motion-duration-fast) var(--motion-ease-soft),color var(--motion-duration-fast) var(--motion-ease-soft),transform var(--motion-duration-fast) var(--motion-ease-soft)}.prefecture-name{display:inline-flex;align-items:center;gap:6px;min-width:0;white-space:nowrap;overflow:hidden}.prefecture-main{font-weight:600;overflow:hidden;text-overflow:ellipsis}.prefecture-region{font-size:11px;color:var(--muted);letter-spacing:.06em;flex-shrink:0}.prefecture-row:hover{background:#fff1d666;color:var(--ink);transform:translateY(-1px)}.badge{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid transparent}.badge-ok{background:#f8c67759;color:#6b4a15;border-color:#f8c67799}.badge-warn{background:#e4a24a47;color:#6b3f0e;border-color:#e4a24a80}.badge-muted{background:#c7af8959;color:#5b4a35;border-color:#c7af8980}.external-viewer{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:20;animation:contentFadeIn var(--motion-duration-medium) var(--motion-ease-soft) both}.external-backdrop{position:absolute;inset:0;background:#140f0a73;border:none;opacity:0;animation:overlayFadeIn var(--motion-duration-medium) var(--motion-ease-soft) both}.external-panel{position:relative;background:#fffdf7;border-radius:20px;border:1px solid var(--line);box-shadow:var(--shadow-strong);width:min(960px,92vw);height:min(80vh,780px);display:flex;flex-direction:column;overflow:hidden;z-index:1;opacity:0;transform:translateY(14px) scale(.985);animation:modalSlideIn var(--motion-duration-slow) var(--motion-ease-standard) both}.external-header{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);background:#fff6e6}.external-title{margin:0;font-size:16px;font-weight:700}.external-sub{margin:4px 0 0;font-size:12px;color:var(--muted)}.external-actions{display:flex;gap:10px;align-items:center}.external-actions a,.external-actions button{border:1px solid var(--line);background:#fff2d9;border-radius:999px;padding:0 14px;font-size:12px;color:var(--accent-ink);text-decoration:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;min-height:36px;white-space:nowrap;line-height:1}.external-body{display:flex;flex-direction:column;flex:1;gap:8px;padding:12px 16px 16px}.external-body.is-paper{overflow:auto}.external-paper-content{display:grid;gap:10px}.external-paper-section{display:grid;gap:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fffaf0}.external-paper-section h4{margin:0;font-size:13px;color:var(--muted-dark)}.external-paper-tabs{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px}.external-paper-tab{appearance:none;border:1px solid var(--line);background:#fff;color:var(--muted-dark);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:600;line-height:1.2;cursor:pointer;min-width:92px;white-space:nowrap}.external-paper-tab.is-active{background:#f3e2c2;border-color:#ddc592;color:#513f23}.external-paper-tabpanel{display:grid;gap:8px}.external-paper-text{margin:0;font-size:13px;line-height:1.65;color:var(--muted-dark)}.external-paper-empty{margin:0;font-size:13px;line-height:1.65;color:var(--muted)}.external-paper-bullets{margin:0;padding-left:18px;display:grid;gap:4px;font-size:12px;color:var(--muted-dark)}.external-paper-meta{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 10px;font-size:12px}.external-paper-meta dt{margin:0;color:var(--muted)}.external-paper-meta dd{margin:0;color:var(--muted-dark);word-break:break-all}.external-body iframe{flex:1;width:100%;border:none;border-radius:16px;background:#fff}.external-note{margin:0;font-size:12px;color:var(--muted)}.eqnet-assist-panel{position:fixed;right:14px;bottom:14px;width:min(460px,calc(100vw - 24px));max-height:min(62vh,560px);overflow:auto;background:#fffdf7;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-strong);padding:14px;display:grid;gap:10px;z-index:18;animation:assistSlideIn var(--motion-duration-medium) var(--motion-ease-standard) both}.eqnet-assist-body{display:grid;gap:10px;transform:translateY(0) scale(1);transform-origin:center bottom;will-change:transform}.eqnet-assist-panel:before,.eqnet-assist-panel:after{content:"";position:absolute;inset:0;border-radius:16px;pointer-events:none;opacity:0;will-change:opacity,transform,box-shadow}.eqnet-assist-panel:before{border:6px solid transparent}.eqnet-assist-panel:after{border:2px solid transparent}.eqnet-assist-panel.is-attention:before{animation-name:eqnet-assist-ring-strong;animation-duration:var(--eqnet-attention-duration, 1.5s);animation-timing-function:ease-in-out;animation-iteration-count:var(--eqnet-attention-iterations, 2);animation-fill-mode:both}.eqnet-assist-panel.is-attention:after{animation-name:eqnet-assist-ring-echo;animation-duration:var(--eqnet-attention-duration, 1.5s);animation-timing-function:ease-in-out;animation-iteration-count:var(--eqnet-attention-iterations, 2);animation-fill-mode:both;animation-delay:var(--eqnet-attention-echo-delay, .14s)}@keyframes eqnet-assist-ring-strong{0%{opacity:0;transform:scale(.992);border-color:#ce965200;box-shadow:0 0 #ce965200,0 0 #ce965200}18%{opacity:.34;transform:scale(.999);border-color:#ce965257;box-shadow:0 0 0 3px #ce965214,0 0 12px #ce96521f}46%{opacity:.95;transform:scale(1.012);border-color:#ce9652eb;box-shadow:0 0 0 10px #ce965240,0 0 36px #ce965257}72%{opacity:.56;transform:scale(1.023);border-color:#ce96527a;box-shadow:0 0 0 15px #ce965224,0 0 24px #ce96522e}to{opacity:0;transform:scale(1.034);border-color:#ce965200;box-shadow:0 0 0 20px #ce965200,0 0 44px #ce965200}}@keyframes eqnet-assist-ring-echo{0%{opacity:0;transform:scale(.998);border-color:#ce965200;box-shadow:0 0 #ce965200}24%{opacity:.2;transform:scale(1.005);border-color:#ce965233;box-shadow:0 0 0 2px #ce96520f}55%{opacity:.62;transform:scale(1.018);border-color:#ce965285;box-shadow:0 0 0 8px #ce96521f}82%{opacity:.32;transform:scale(1.031);border-color:#ce96523d;box-shadow:0 0 0 12px #ce96520f}to{opacity:0;transform:scale(1.046);border-color:#ce965200;box-shadow:0 0 0 16px #ce965200}}.eqnet-assist-head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:flex-start}.eqnet-assist-head>div{min-width:0}.eqnet-assist-head h4{margin:0;font-size:17px;color:var(--ink)}.eqnet-assist-head p{margin:4px 0 0;font-size:12px;color:var(--muted-dark)}.eqnet-assist-head button{display:inline-flex;align-items:center;justify-content:center;min-width:74px;height:36px;border:1px solid var(--line);border-radius:999px;background:#fff2d9;color:var(--accent-ink);font-size:12px;line-height:1;white-space:nowrap;padding:0 12px;cursor:pointer;flex-shrink:0}.eqnet-assist-fields{display:grid;gap:8px}.eqnet-assist-field{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 8px;background:#fff7e8;border:1px solid var(--line);border-radius:12px;padding:8px 10px}.eqnet-assist-field span{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.eqnet-assist-field strong{grid-column:1 / 2;font-size:14px;color:var(--ink);font-weight:700;word-break:break-word}.eqnet-assist-field button{grid-column:2 / 3;grid-row:1 / 3;border:1px solid var(--line);background:#fff2d9;border-radius:999px;padding:6px 12px;font-size:12px;color:var(--accent-ink);cursor:pointer;white-space:nowrap}.eqnet-assist-hints{display:flex;flex-wrap:wrap;gap:8px}.eqnet-assist-hints span{font-size:12px;color:var(--accent-ink);background:#fff2d9;border:1px solid var(--line);border-radius:999px;padding:4px 10px}.eqnet-assist-actions{display:flex;justify-content:flex-end;gap:8px;flex-wrap:wrap}.eqnet-assist-actions button{border:1px solid var(--line);background:#fff2d9;border-radius:999px;padding:7px 12px;font-size:12px;color:var(--accent-ink);cursor:pointer}@media(max-width:860px){.eqnet-assist-panel{right:8px;bottom:8px;width:calc(100vw - 16px);max-height:56vh}}.equipment-sheet{position:fixed;inset:0;display:flex;align-items:flex-end;justify-content:center;z-index:12;pointer-events:none;visibility:hidden}.equipment-sheet-backdrop{position:absolute;inset:0;border:none;background:#140f0a14;opacity:0;transition:opacity .9s var(--motion-ease-soft);pointer-events:none}.equipment-sheet.is-open .equipment-sheet-backdrop{opacity:1;pointer-events:auto}.equipment-sheet-panel{position:relative;width:min(960px,96vw);max-height:min(44vh,380px);background:#fffdf7;border-radius:22px 22px 0 0;border:1px solid var(--line);box-shadow:var(--shadow-strong);transform:translateY(110%) scale(.985);opacity:0;transition:transform 1.2s var(--motion-ease-standard),opacity 1s var(--motion-ease-soft);padding:12px 18px 16px;display:flex;flex-direction:column;gap:12px;pointer-events:auto;overflow:hidden}.equipment-sheet.is-open .equipment-sheet-panel{transform:translateY(0) scale(1);opacity:1}.equipment-sheet.is-expanded .equipment-sheet-panel{height:min(100dvh,100vh);max-height:min(100dvh,100vh);border-radius:0}.equipment-sheet.is-open{visibility:visible;pointer-events:auto}.equipment-sheet-handle{width:100%;border:none;background:transparent;padding:2px 0 0;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer}.equipment-sheet-handle-bar{width:48px;height:4px;border-radius:999px;background:#b07a4673}.equipment-sheet-handle-text{font-size:11px;color:var(--muted);letter-spacing:.08em}.equipment-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.equipment-sheet-header-actions{display:flex;align-items:flex-start;justify-content:flex-end;gap:10px;flex-wrap:wrap}.equipment-sheet-nav{display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.equipment-sheet-nav-position{font-size:11px;color:var(--muted);line-height:1.3;min-width:48px;text-align:right}.equipment-sheet-nav-button{border:1px solid var(--line);background:#fff8ea;color:var(--accent-ink);border-radius:999px;padding:4px 10px;min-height:28px;font-size:11px;font-weight:700;cursor:pointer;line-height:1;transition:background var(--motion-duration-fast) var(--motion-ease-soft),transform var(--motion-duration-fast) var(--motion-ease-soft),box-shadow var(--motion-duration-fast) var(--motion-ease-soft)}.equipment-sheet-nav-button:hover:not(:disabled){background:#ffebc4;transform:translateY(-1px);box-shadow:0 6px 14px #523b191a}.equipment-sheet-nav-button:focus-visible{outline:2px solid #ce9652;outline-offset:2px}.equipment-sheet-nav-button:disabled{cursor:default;opacity:.6}.equipment-sheet-title{display:grid;gap:6px}.equipment-sheet-eyebrow{margin:0;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.equipment-sheet-name{margin:0;font-size:18px;overflow-wrap:anywhere}.equipment-sheet-meta{margin:0;font-size:12px;color:var(--muted)}.equipment-sheet-close{border:1px solid var(--line);background:#fff2d9;border-radius:999px;padding:6px 14px;min-width:72px;font-size:12px;color:var(--accent-ink);cursor:pointer;white-space:nowrap;line-height:1.4;flex-shrink:0}.equipment-sheet-body{overflow-y:auto;min-height:0;flex:1;display:flex;flex-direction:column;align-items:stretch;gap:10px;-webkit-overflow-scrolling:touch;opacity:0;transform:translateY(12px);transition:opacity .85s var(--motion-ease-soft),transform 1.05s var(--motion-ease-standard);transition-delay:.12s}.equipment-sheet.is-open .equipment-sheet-body{opacity:1;transform:translateY(0)}.equipment-sheet-content{display:grid;gap:10px}.equipment-sheet-content.is-switch-forward{animation:detailSwitchForward .36s var(--motion-ease-standard) both}.equipment-sheet-content.is-switch-back{animation:detailSwitchBack .36s var(--motion-ease-standard) both}.equipment-sheet-body p{margin:0;font-size:13px;color:var(--muted-dark);line-height:1.6}.equipment-sheet-body>ul,.equipment-sheet-content>ul{margin:0;padding-left:18px;display:grid;gap:4px;font-size:13px;color:var(--muted-dark)}.equipment-sheet-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.equipment-sheet-actions .link-button{width:auto;min-width:160px}.equipment-sheet-note{margin:0;font-size:11px;color:var(--muted)}.equipment-sheet-papers{display:grid;gap:8px;margin-top:4px}.equipment-sheet-papers h5{margin:0;font-size:13px;color:var(--muted-dark)}.paper-status{margin:0;font-size:12px;color:var(--muted)}.paper-status.error{color:#7a3f12}.paper-list{list-style:none;margin:0;padding:0;display:grid;gap:10px;width:100%}.equipment-sheet-body .paper-list{padding-left:0;margin-left:0}.paper-item{background:#fffaf3;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:6px;width:100%;box-sizing:border-box;cursor:pointer}.paper-title{margin:0;font-size:13px;font-weight:600;color:var(--ink)}.paper-meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:12px;color:var(--muted-dark)}.paper-meta a{color:var(--accent-ink);text-decoration:none}.paper-meta a:hover{text-decoration:underline}.paper-genre{border:1px solid var(--line);background:#fff2d9;color:var(--accent-ink);padding:2px 8px;border-radius:999px;font-size:11px}.equipment-sheet-recommendations{display:grid;gap:8px;margin-top:6px}.equipment-sheet-recommendations h5{margin:0;font-size:13px;color:var(--muted-dark)}.recommendation-status{margin:0;font-size:12px;color:var(--muted)}.recommendation-status.error{color:#7a3f12}.recommendation-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}.recommendation-item{background:#fff9ef;border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:6px;cursor:pointer;transition:transform .24s var(--motion-ease-soft),box-shadow .24s var(--motion-ease-soft),border-color .24s var(--motion-ease-soft)}.recommendation-item:hover{transform:translateY(-1px);border-color:#ce96528c;box-shadow:0 8px 20px #523b1914}.recommendation-item:focus-visible{outline:2px solid #ce9652;outline-offset:2px}.recommendation-item.is-active{cursor:default;background:#fff2d9;border-color:#ce9652a6;box-shadow:inset 0 0 0 1px #ce965233}.recommendation-item.is-active:hover{transform:none;box-shadow:inset 0 0 0 1px #ce965233}.recommendation-name{margin:0;font-size:14px;font-weight:700;color:var(--ink);line-height:1.45}.recommendation-org{margin:0;font-size:12px;color:var(--muted-dark);line-height:1.45}.recommendation-meta{display:flex;flex-wrap:wrap;gap:8px}.recommendation-meta span{border:1px solid var(--line);background:#fff3de;color:var(--accent-ink);border-radius:999px;padding:2px 8px;font-size:11px;line-height:1.35}.recommendation-controls{display:flex;justify-content:center;margin-top:2px}.recommendation-more-button{border:1px solid var(--line);background:#fff2d9;color:var(--accent-ink);border-radius:999px;min-height:36px;padding:0 16px;font-size:12px;font-weight:700;cursor:pointer;transition:transform .24s var(--motion-ease-soft),box-shadow .24s var(--motion-ease-soft),background-color .24s var(--motion-ease-soft)}.recommendation-more-button:hover:not(:disabled){transform:translateY(-1px);background:#ffe8bf;box-shadow:0 8px 18px #523b1914}.recommendation-more-button:focus-visible{outline:2px solid #ce9652;outline-offset:2px}.recommendation-more-button:disabled{cursor:default;opacity:.78}.footer{text-align:center;color:var(--muted);font-size:13px;padding-bottom:20px}.footer-links{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:6px}.footer-links a{display:inline-flex;align-items:center;gap:4px;padding:0;color:var(--accent-ink);text-decoration:underline;text-underline-offset:2px;font-weight:700;white-space:nowrap}.footer-links a:hover{opacity:.8}.footer-links a:after{content:"↗";font-size:11px;line-height:1;text-decoration:none}.footer-links a:focus-visible{outline:2px solid #ce9652;outline-offset:2px}@media(max-width:520px){.footer-links{flex-direction:column;gap:6px;margin-top:6px}.footer-links a{min-height:40px;padding:4px 2px;line-height:1.3}}@keyframes rowIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes resultsSwapIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes skeletonPulse{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes contentFadeIn{0%{opacity:0}to{opacity:1}}@keyframes surfacePopIn{0%{opacity:0;transform:translateY(8px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes assistSlideIn{0%{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes floatIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes heroMascotFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@keyframes detailSwitchForward{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes detailSwitchBack{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@media(max-width:1100px){.hero-shell{grid-template-columns:1fr}.hero-mascot{width:clamp(88px,18vw,148px)}.results-body{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.hero,.hero-mascot,.result-row,.results-status,.results-content,.map-info,.map-tooltip,.jp-map-svg,.jp-map-empty,.map-list li,.external-viewer,.external-backdrop,.external-panel,.eqnet-assist-panel,.eqnet-assist-panel.is-attention,.equipment-sheet-panel,.equipment-sheet-content{animation:none!important}.eqnet-assist-panel.is-attention:before{animation:none!important}.eqnet-assist-panel.is-attention:after{animation:none!important}.results-body,.results-list,.pagination,.map-panel,.map-canvas,.jp-map-geo,.jp-map-shape,.jp-map-marker,.jp-map-marker-dot,.jp-map-empty,.map-zoom-controls button,.prefecture-row,.result-row,.recommendation-item,.recommendation-more-button,.equipment-sheet-nav-button,.equipment-sheet-backdrop,.equipment-sheet-body,.equipment-sheet-panel,.equipment-sheet-content{transition:none!important}}@media(max-width:860px){.list-header{display:none}.result-row{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0}.result-title{flex:1 1 100%}.result-title strong{min-height:2.64em;max-height:2.64em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.detail{min-height:1.3em;max-height:1.3em;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1;line-clamp:1}.result-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%}.result-distance{flex:1 1 0;display:inline-flex;flex-direction:row;align-items:center;justify-content:center;gap:8px}.result-tags{flex:1 1 0;flex-direction:row;align-items:center;justify-content:center;gap:8px}.result-actions{flex:1 1 100%;flex-direction:row;flex-wrap:wrap;justify-content:center;width:100%}.result-actions .link-button{width:auto;flex:1 1 160px}.result-actions .link-disabled{flex:1 1 160px;text-align:center}.results-skeleton-row{display:flex;flex-wrap:wrap;gap:10px;padding:12px 0}.results-skeleton-block.title{width:100%}.results-skeleton-block.meta,.results-skeleton-block.badge{width:calc((100% - 10px)/2)}.results-skeleton-block.action{width:100%}.map-panel{min-height:0;display:flex;flex-direction:column;gap:12px}.map-canvas{height:auto;min-height:0}.jp-map-geo{flex:0 0 auto;height:500px;min-height:500px;max-height:500px;aspect-ratio:auto}.map-zoom-controls{right:10px;top:10px}.map-zoom-controls button{padding:8px 12px;font-size:13px}.map-info{left:12px;right:12px;bottom:12px;transform:none;width:auto;max-width:none;max-height:65%}.jp-map-marker-text{font-size:6px}}@media(max-width:640px){.hero-copy{padding-top:10px}.title-row{flex-wrap:nowrap;align-items:center;gap:10px}.hero-mascot{width:clamp(92px,28vw,132px);margin-left:0;align-self:center}.pagination-bar{flex-wrap:nowrap}.pager-skip{display:none}.equipment-sheet-panel{width:100%;max-height:52vh;border-radius:18px 18px 0 0;padding:12px 14px 16px}.equipment-sheet-header{flex-direction:column;gap:10px}.equipment-sheet-header-actions{width:100%;justify-content:space-between;align-items:center}.equipment-sheet-nav{justify-content:flex-start;gap:8px}.equipment-sheet-nav-position{text-align:left;min-width:42px}.equipment-sheet-actions{justify-content:center}.equipment-sheet-actions .link-button{width:100%}.pagination-bar{gap:8px;padding:8px}.pager-button,.page-number{min-width:38px;height:32px;font-size:11px}.search-main{flex-direction:column}.search-main input{flex:0 0 auto;height:50px;padding:10px 12px}.search-buttons{flex-direction:column;align-items:stretch}.search-left,.search-right{width:100%;justify-content:space-between;gap:10px}.search-left .location-button,.search-right .ghost,.search-right .primary{width:calc((100% - 10px)/2);flex:0 0 calc((100% - 10px)/2);min-height:40px;padding:0 14px;justify-content:center;line-height:1}.map-tooltip{display:none}.jp-map-marker-text{font-size:6px}.results-list{padding:14px}.result-row{padding:10px 0}.link-button{padding:6px 10px;font-size:12px}.primary,.ghost{padding:8px 14px;font-size:12px}.external-header{flex-direction:column;align-items:flex-start;gap:12px}.external-actions{width:100%;flex-wrap:wrap;justify-content:flex-start}.external-actions a,.external-actions button{flex:1 1 140px;padding:0 12px;font-size:12px;white-space:nowrap}.external-paper-tab{min-width:110px;flex:1 1 0}}
