{"id":16451,"date":"2026-09-18T20:21:27","date_gmt":"2026-09-18T11:21:27","guid":{"rendered":"https:\/\/info.okinawa\/?page_id=16451"},"modified":"2026-09-26T14:45:25","modified_gmt":"2026-09-26T05:45:25","slug":"%e6%b2%96%e7%b8%84%e3%83%a9%e3%82%a4%e3%83%96%e3%82%ab%e3%83%a1%e3%83%a9%ef%bd%9c%e6%b5%b7%e3%83%bb%e6%b3%a2%e3%83%bb%e5%a4%a9%e6%b0%97%e3%82%92%e3%83%aa%e3%82%a2%e3%83%ab%e3%82%bf%e3%82%a4%e3%83%a0","status":"publish","type":"page","link":"https:\/\/info.okinawa\/?page_id=16451","title":{"rendered":"\u6c96\u7e04\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\uff5c\u6d77\u30fb\u6ce2\u30fb\u5929\u6c17\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u78ba\u8a8d"},"content":{"rendered":"    <section id=\"noh-livecams-84492\" class=\"noh-livecams\" aria-label=\"\u6c96\u7e04\u672c\u5cf6\u306e\u6d77\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\">\n        <div class=\"noh-livecams__intro\">\n            <p>\u771f\u6804\u7530\u5cac\u306e\u30e9\u30a4\u30d6\u6620\u50cf\u3092\u4e2d\u5fc3\u306b\u3001\u6069\u7d0d\u6751\u5468\u8fba\u306e\u5929\u6c17\u3084\u6f6e\u3001\u6c96\u7e04\u672c\u5cf6\u5404\u5730\u306e\u6d77\u6cc1\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n            <p class=\"noh-livecams__caution\">\u6620\u50cf\u3060\u3051\u3067\u6d77\u306e\u5b89\u5168\u3092\u5224\u65ad\u305b\u305a\u3001\u6c17\u8c61\u60c5\u5831\u30fb\u6ce2\u6d6a\u60c5\u5831\u30fb\u73fe\u5730\u306e\u6848\u5185\u3082\u5fc5\u305a\u3054\u78ba\u8a8d\u304f\u3060\u3055\u3044\u3002<\/p>\n        <\/div>\n\n        <div class=\"noh-livecams__filters\" role=\"group\" aria-label=\"\u5730\u57df\u3067\u7d5e\u308a\u8fbc\u3080\">\n            <button type=\"button\" class=\"is-active\" data-area=\"all\">\u3059\u3079\u3066<\/button>\n            <button type=\"button\" data-area=\"north\">\u5317\u90e8<\/button>\n            <button type=\"button\" data-area=\"central\">\u4e2d\u90e8<\/button>\n            <button type=\"button\" data-area=\"south\">\u5357\u90e8<\/button>\n        <\/div>\n\n        <div class=\"noh-livecams__map-wrap\">\n            <div class=\"noh-livecams__map\" aria-label=\"\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\u8a2d\u7f6e\u5834\u6240\u306e\u5730\u56f3\"><\/div>\n        <\/div>\n\n        <section class=\"noh-livecams__weather\" aria-label=\"\u6069\u7d0d\u6751\u5468\u8fba\u306e\u5929\u6c17\">\n            <div class=\"noh-livecams__weather-head\">\n                <div>\n                    <div class=\"noh-livecams__weather-title\">\u6069\u7d0d\u6751\u5468\u8fba\u306e\u5929\u6c17<\/div>\n                <\/div>\n                <span class=\"noh-livecams__weather-updated\" data-weather-updated>\u8aad\u307f\u8fbc\u307f\u4e2d\u2026<\/span>\n            <\/div>\n            <div class=\"noh-livecams__weather-grid\">\n                <div class=\"noh-livecams__weather-card noh-livecams__weather-card--main\">\n                    <div class=\"noh-livecams__weather-current\"><strong data-weather-temp>--\u2103<\/strong><span class=\"noh-livecams__weather-icon\" data-weather-icon role=\"img\" aria-label=\"\u5929\u6c17\u3092\u53d6\u5f97\u4e2d\">\u23f3<\/span><\/div>\n                    <dl>\n                        <div><dt>\u964d\u6c34\u91cf<\/dt><dd data-weather-rain>--mm<\/dd><\/div>\n                        <div><dt>\u98a8<\/dt><dd data-weather-wind>--<\/dd><\/div>\n                    <\/dl>\n                <\/div>\n            <\/div>\n            <div class=\"noh-livecams__hourly-wrap\">\n                <div class=\"noh-livecams__hourly-head\">\n                    <strong>\u4eca\u65e5\u306e\u6642\u9593\u5225\u5929\u6c17<\/strong>\n                    <span>\u6a2a\u306b\u30b9\u30e9\u30a4\u30c9\u3067\u304d\u307e\u3059 \u2192<\/span>\n                <\/div>\n                <div class=\"noh-livecams__hourly\" data-hourly-weather aria-label=\"\u4eca\u65e5\u306e\u6642\u9593\u5225\u5929\u6c17\">\n                    <div class=\"noh-livecams__hourly-loading\">\u6642\u9593\u5225\u4e88\u5831\u3092\u8aad\u307f\u8fbc\u307f\u4e2d\u2026<\/div>\n                <\/div>\n            <\/div>\n            <p class=\"noh-livecams__weather-note\">\u30c7\u30fc\u30bf\u63d0\u4f9b\uff1aOpen-Meteo\uff08\u6c17\u8c61\u5e81\u30e2\u30c7\u30eb\uff09\u3000\u203b\u5929\u6c17\u30fb\u98a8\u306f\u4e88\u6e2c\u5024\u3067\u3059\u3002\u904a\u6cf3\u53ef\u5426\u306f\u73fe\u5730\u306e\u6848\u5185\u3092\u512a\u5148\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n        <\/section>\n\n        <section class=\"noh-livecams__tide\" aria-label=\"\u4eca\u65e5\u306e\u30bf\u30a4\u30c9\u30b0\u30e9\u30d5\">\n            <div class=\"noh-livecams__tide-head\">\n                <div>\n                    <div class=\"noh-livecams__weather-title\">\u4eca\u65e5\u306e\u30bf\u30a4\u30c9\u30b0\u30e9\u30d5<\/div>\n                    <p>9\u670827\u65e5\u30fb\u771f\u6804\u7530\u5cac\u30fb\u5927\u6f6e<\/p>\n                <\/div>\n                <a href=\"https:\/\/tide.chowari.jp\/47\/473111\/23094\/\" target=\"_blank\" rel=\"noopener noreferrer\">\u8a73\u3057\u3044\u6f6e\u898b\u8868<\/a>\n            <\/div>\n                                                <div class=\"noh-livecams__tide-chart\" data-tide-points=\"[{&quot;minute&quot;:80,&quot;time&quot;:&quot;01:20&quot;,&quot;level&quot;:44,&quot;type&quot;:&quot;low&quot;},{&quot;minute&quot;:450,&quot;time&quot;:&quot;07:30&quot;,&quot;level&quot;:216,&quot;type&quot;:&quot;high&quot;},{&quot;minute&quot;:819,&quot;time&quot;:&quot;13:39&quot;,&quot;level&quot;:45,&quot;type&quot;:&quot;low&quot;},{&quot;minute&quot;:1180,&quot;time&quot;:&quot;19:40&quot;,&quot;level&quot;:213,&quot;type&quot;:&quot;high&quot;}]\">\n                        <svg viewBox=\"0 0 400 260\" role=\"img\" aria-label=\"\u771f\u6804\u7530\u5cac\u306e\u4eca\u65e5\u306e\u30bf\u30a4\u30c9\u30b0\u30e9\u30d5\"><\/svg>\n                    <\/div>\n                    <p class=\"noh-livecams__tide-chart-note\"><span class=\"noh-livecams__tide-now-key\"><\/span>\u8d64\u7dda\u306f\u73fe\u5728\u6642\u523b\u3000\u66f2\u7dda\u306f\u6e80\u6f6e\u30fb\u5e72\u6f6e\u306e\u4e88\u6e2c\u5024\u3092\u3082\u3068\u306b\u3057\u305f\u76ee\u5b89\u3067\u3059\u3002<\/p>\n                                <div class=\"noh-livecams__tide-grid\">\n                    <div class=\"noh-livecams__tide-group\">\n                        <span class=\"noh-livecams__tide-label\">\u6e80\u6f6e<\/span>\n                                                    <div class=\"noh-livecams__tide-row\"><strong>07:30<\/strong><span>216cm<\/span><\/div>\n                                                    <div class=\"noh-livecams__tide-row\"><strong>19:40<\/strong><span>213cm<\/span><\/div>\n                                            <\/div>\n                    <div class=\"noh-livecams__tide-group\">\n                        <span class=\"noh-livecams__tide-label\">\u5e72\u6f6e<\/span>\n                                                    <div class=\"noh-livecams__tide-row\"><strong>01:20<\/strong><span>44cm<\/span><\/div>\n                                                    <div class=\"noh-livecams__tide-row\"><strong>13:39<\/strong><span>45cm<\/span><\/div>\n                                            <\/div>\n                <\/div>\n                        <p class=\"noh-livecams__weather-note\">\u51fa\u5178\uff1a\u91e3\u5272\u300c\u771f\u6804\u7530\u5cac\u306e\u6f6e\u898b\u8868\u300d\u3000\u203b\u6f6e\u4f4d\u306f\u4e88\u6e2c\u5024\u3067\u3059\u3002<\/p>\n        <\/section>\n\n        <p class=\"noh-livecams__maintenance-note\">\u63b2\u8f09\u6620\u50cf\u306f\u5b9a\u671f\u7684\u306b\u78ba\u8a8d\u3057\u3001\u914d\u4fe1\u7d42\u4e86\u3084URL\u5909\u66f4\u306b\u3042\u308f\u305b\u3066\u66f4\u65b0\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n        <div class=\"noh-livecams__streams\">\n                                            <article id=\"noh-livecams-84492-maeda\" class=\"noh-livecams__stream is-featured\" data-id=\"maeda\" data-area=\"central\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe src=\"https:\/\/www.youtube.com\/embed\/live_stream?autoplay=1&#038;mute=1&#038;playsinline=1&#038;channel=UCJsrzRJyPRvQeZ0QbcTSwxQ\" title=\"\u771f\u6804\u7530\u5cac\u30fb\u9752\u306e\u6d1e\u7a9f \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u4e2d\u90e8<\/span><span class=\"noh-livecams__place\">\u6069\u7d0d\u6751\u30fb\u771f\u6804\u7530\u5cac<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">\u771f\u6804\u7530\u5cac\u30fb\u9752\u306e\u6d1e\u7a9f<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                        <span class=\"noh-livecams__sea-status is-unavailable\" data-maeda-sea-status aria-live=\"polite\">\u6d77\u6cc1\u78ba\u8a8d\u4e2d\u2026<\/span>\n                                                    <\/div>\n                        <p>\u771f\u6804\u7530\u5cac\u306e\u6d77\u9762\u3084\u6ce2\u3001\u73fe\u5730\u306e\u65d7\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1a\u771f\u6804\u7530\u5cac \u9752\u306e\u6d1e\u7a9f \u672c\u65e5\u306e\u6d77\u6cc1<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/channel\/UCJsrzRJyPRvQeZ0QbcTSwxQ\/live\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2193 MAP<\/button>\n                                                            <a class=\"noh-livecams__link\" href=\"https:\/\/maedamisaki.jp\/sea-status\" target=\"_blank\" rel=\"noopener noreferrer\">\u516c\u5f0f\u300c\u672c\u65e5\u306e\u6d77\u6cc1\u300d\u3092\u78ba\u8a8d<\/a>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                                            <article id=\"noh-livecams-84492-cahaya-bulan\" class=\"noh-livecams__stream\" data-id=\"cahaya-bulan\" data-area=\"north\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/5ZIw5x5jnQg?autoplay=1&#038;mute=1&#038;playsinline=1\" title=\"CAHAYA BULAN\u30fb\u5099\u702c \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u5317\u90e8<\/span><span class=\"noh-livecams__place\">\u672c\u90e8\u753a\u30fb\u5099\u702c<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">CAHAYA BULAN\u30fb\u5099\u702c<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                <\/div>\n                        <p>\u5099\u702c\u306e\u6d77\u5cb8\u3068\u4f0a\u6c5f\u5cf6\u65b9\u9762\u306e\u6ce2\u3084\u5929\u5019\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1aCAHAYA BULAN<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/watch?v=5ZIw5x5jnQg\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2191 MAP<\/button>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                                            <article id=\"noh-livecams-84492-motobu-terrace\" class=\"noh-livecams__stream\" data-id=\"motobu-terrace\" data-area=\"north\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/Tlc3uegvdrQ?autoplay=1&#038;mute=1&#038;playsinline=1\" title=\"\u30e2\u30c8\u30d6\u30c6\u30e9\u30b9 \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u5317\u90e8<\/span><span class=\"noh-livecams__place\">\u672c\u90e8\u753a\u30fb\u4f0a\u91ce\u6ce2<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">\u30e2\u30c8\u30d6\u30c6\u30e9\u30b9<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                <\/div>\n                        <p>\u672c\u90e8\u753a\u306e\u9ad8\u53f0\u304b\u3089\u6d77\u3084\u4f0a\u6c5f\u5cf6\u3001\u7a7a\u6a21\u69d8\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1aMOTOBU TERRACE<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/watch?v=Tlc3uegvdrQ\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2191 MAP<\/button>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                                            <article id=\"noh-livecams-84492-busena\" class=\"noh-livecams__stream\" data-id=\"busena\" data-area=\"north\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/VWpOgCVKoK4?autoplay=1&#038;mute=1&#038;playsinline=1\" title=\"\u30b6\u30fb\u30d6\u30bb\u30ca\u30c6\u30e9\u30b9 \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u5317\u90e8<\/span><span class=\"noh-livecams__place\">\u540d\u8b77\u5e02\u30fb\u90e8\u702c\u540d\u5cac<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">\u30b6\u30fb\u30d6\u30bb\u30ca\u30c6\u30e9\u30b9<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                <\/div>\n                        <p>\u90e8\u702c\u540d\u5cac\u5468\u8fba\u306e\u6771\u30b7\u30ca\u6d77\u3068\u30d3\u30fc\u30c1\u3001\u7a7a\u6a21\u69d8\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1a\u30b6\u30fb\u30d6\u30bb\u30ca\u30c6\u30e9\u30b9<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/watch?v=VWpOgCVKoK4\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2191 MAP<\/button>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                                            <article id=\"noh-livecams-84492-kariyushi-beach\" class=\"noh-livecams__stream\" data-id=\"kariyushi-beach\" data-area=\"north\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/THryehCFhUU?autoplay=1&#038;mute=1&#038;playsinline=1\" title=\"\u304b\u308a\u3086\u3057\u30d3\u30fc\u30c1 \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u5317\u90e8<\/span><span class=\"noh-livecams__place\">\u540d\u8b77\u5e02\u30fb\u559c\u702c<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">\u304b\u308a\u3086\u3057\u30d3\u30fc\u30c1<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                <\/div>\n                        <p>\u30d3\u30fc\u30c1\u306e\u6ce2\u3084\u5929\u5019\u3001\u904a\u6cf3\u30a8\u30ea\u30a2\u5468\u8fba\u306e\u69d8\u5b50\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1a\u304b\u308a\u3086\u3057\u30d3\u30fc\u30c1<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/watch?v=THryehCFhUU\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2191 MAP<\/button>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                                            <article id=\"noh-livecams-84492-malibu\" class=\"noh-livecams__stream\" data-id=\"malibu\" data-area=\"central\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/3VuKgtoZWbQ?autoplay=1&#038;mute=1&#038;playsinline=1\" title=\"\u30de\u30ea\u30d6\u30d3\u30fc\u30c1 \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u4e2d\u90e8<\/span><span class=\"noh-livecams__place\">\u6069\u7d0d\u6751\u30fb\u5c71\u7530<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">\u30de\u30ea\u30d6\u30d3\u30fc\u30c1<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                <\/div>\n                        <p>\u6069\u7d0d\u6751\u5357\u90e8\u306e\u897f\u6d77\u5cb8\u3068\u6d77\u9762\u3001\u5929\u5019\u306e\u69d8\u5b50\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1a\u6c96\u7e04NOW!!<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/watch?v=3VuKgtoZWbQ\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2191 MAP<\/button>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                                            <article id=\"noh-livecams-84492-miyagi-coast\" class=\"noh-livecams__stream\" data-id=\"miyagi-coast\" data-area=\"central\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/xMj8D0SKlTc?autoplay=1&#038;mute=1&#038;playsinline=1\" title=\"\u5bae\u57ce\u6d77\u5cb8\u30fb\u7802\u8fba \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u4e2d\u90e8<\/span><span class=\"noh-livecams__place\">\u5317\u8c37\u753a\u30fb\u5bae\u57ce\u6d77\u5cb8<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">\u5bae\u57ce\u6d77\u5cb8\u30fb\u7802\u8fba<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                <\/div>\n                        <p>\u5317\u8c37\u753a\u30fb\u7802\u8fba\u5468\u8fba\u306e\u6ce2\u3084\u6d77\u9762\u3001\u5929\u5019\u306e\u69d8\u5b50\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1a\u30aa\u30fc\u30b7\u30e3\u30f3\u30d3\u30e5\u30fc\u5317\u8c37\u753a\u7802\u8fba\u3001\u5bae\u57ce\u6d77\u5cb8<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/watch?v=xMj8D0SKlTc\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2191 MAP<\/button>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                                            <article id=\"noh-livecams-84492-senaga-airport\" class=\"noh-livecams__stream\" data-id=\"senaga-airport\" data-area=\"south\">\n                    <div class=\"noh-livecams__video\">\n                        <iframe data-src=\"https:\/\/www.youtube-nocookie.com\/embed\/3e_uPkJCTNo?autoplay=1&#038;mute=1&#038;playsinline=1\" title=\"\u702c\u9577\u5cf6\u30fb\u90a3\u8987\u7a7a\u6e2f \u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\" allow=\"autoplay; encrypted-media; picture-in-picture\" allowfullscreen loading=\"lazy\"><\/iframe>\n                    <\/div>\n                    <div class=\"noh-livecams__viewer-info\">\n                        <div class=\"noh-livecams__stream-meta\"><span class=\"noh-livecams__area\">\u5357\u90e8<\/span><span class=\"noh-livecams__place\">\u8c4a\u898b\u57ce\u5e02\u30fb\u702c\u9577\u5cf6<\/span><\/div>\n                        <div class=\"noh-livecams__title-row\">\n                            <div class=\"noh-livecams__viewer-title\">\u702c\u9577\u5cf6\u30fb\u90a3\u8987\u7a7a\u6e2f<\/div>\n                                                            <span class=\"noh-livecams__live-status is-live\"><span aria-hidden=\"true\">\u25cf<\/span> LIVE<\/span>\n                                                                                <\/div>\n                        <p>\u702c\u9577\u5cf6\u304b\u3089\u6d77\u3068\u90a3\u8987\u7a7a\u6e2f\u306e\u6ed1\u8d70\u8def\u3001\u7a7a\u6a21\u69d8\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<br>\u914d\u4fe1\u5143\uff1aBANKSY GINOWAN<\/p>\n                                                    <p class=\"noh-livecams__verified\">\u6620\u50cf\u78ba\u8a8d\uff1a2026\u5e749\u670826\u65e5<\/p>\n                                                <div class=\"noh-livecams__viewer-links\">\n                            <a class=\"noh-livecams__link\" href=\"https:\/\/www.youtube.com\/watch?v=3e_uPkJCTNo\" target=\"_blank\" rel=\"noopener noreferrer\">YouTube\u3067\u898b\u308b<\/a>\n                            <button class=\"noh-livecams__link noh-livecams__back-map\" type=\"button\" data-back-to-map aria-label=\"\u5730\u56f3\u3078\u79fb\u52d5\">\u2191 MAP<\/button>\n                                                    <\/div>\n                    <\/div>\n                <\/article>\n                    <\/div>\n\n        <p class=\"noh-livecams__source-note\">\u5404\u6620\u50cf\u306e\u8457\u4f5c\u6a29\u306f\u914d\u4fe1\u5143\u306b\u5e30\u5c5e\u3057\u307e\u3059\u3002\u914d\u4fe1\u72b6\u6cc1\u306b\u3088\u308a\u3001\u4e00\u6642\u505c\u6b62\u30fb\u7d42\u4e86\u3057\u3066\u3044\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n        <section class=\"noh-livecams__seo\" aria-labelledby=\"noh-livecams-84492-seo-title\">\n            <h2 id=\"noh-livecams-84492-seo-title\">\u6c96\u7e04\u306e\u6d77\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\u306b\u3064\u3044\u3066<\/h2>\n            <p>\u3053\u306e\u30da\u30fc\u30b8\u3067\u306f\u3001\u73fe\u5728\u8996\u8074\u3067\u304d\u308b\u6c96\u7e04\u672c\u5cf6\u306e\u6d77\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\u3092\u53b3\u9078\u3057\u3066\u63b2\u8f09\u3057\u3066\u3044\u307e\u3059\u3002\u771f\u6804\u7530\u5cac\u30fb\u6069\u7d0d\u6751\u3092\u4e2d\u5fc3\u306b\u3001\u672c\u90e8\u753a\u30fb\u540d\u8b77\u5e02\u30fb\u5317\u8c37\u753a\u30fb\u702c\u9577\u5cf6\u306a\u3069\u306e\u6d77\u3084\u7a7a\u6a21\u69d8\u3092\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u6620\u50cf\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n            <p>\u6d77\u3078\u51fa\u304b\u3051\u308b\u524d\u306b\u3001\u73fe\u5730\u306e\u5929\u6c17\u3001\u6ce2\u306e\u69d8\u5b50\u3001\u98a8\u3001\u6f6e\u4f4d\u3001\u30d3\u30fc\u30c1\u5468\u8fba\u306e\u72b6\u6cc1\u3092\u78ba\u8a8d\u3059\u308b\u969b\u306b\u3054\u6d3b\u7528\u304f\u3060\u3055\u3044\u3002\u914d\u4fe1\u304c\u7d42\u4e86\u3057\u305f\u30ab\u30e1\u30e9\u3084\u9577\u671f\u9593\u505c\u6b62\u3057\u3066\u3044\u308b\u6620\u50cf\u306f\u3001\u968f\u6642\u78ba\u8a8d\u30fb\u898b\u76f4\u3057\u3092\u884c\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n            <h3>\u63b2\u8f09\u3057\u3066\u3044\u308b\u4e3b\u306a\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9<\/h3>\n            <p>\u771f\u6804\u7530\u5cac\u30fb\u9752\u306e\u6d1e\u7a9f\u3001\u5099\u702c\u3001\u30e2\u30c8\u30d6\u30c6\u30e9\u30b9\u3001\u30d6\u30bb\u30ca\u30c6\u30e9\u30b9\u3001\u304b\u308a\u3086\u3057\u30d3\u30fc\u30c1\u3001\u30de\u30ea\u30d6\u30d3\u30fc\u30c1\u3001\u5bae\u57ce\u6d77\u5cb8\u30fb\u7802\u8fba\u3001\u702c\u9577\u5cf6\u30fb\u90a3\u8987\u7a7a\u6e2f\u306a\u3069\u306e\u30e9\u30a4\u30d6\u6620\u50cf\u3092\u63b2\u8f09\u3057\u3066\u3044\u307e\u3059\u3002\u5730\u56f3\u306e\u30d4\u30f3\u3084\u300c\u5317\u90e8\u30fb\u4e2d\u90e8\u30fb\u5357\u90e8\u300d\u30dc\u30bf\u30f3\u304b\u3089\u3001\u78ba\u8a8d\u3057\u305f\u3044\u5730\u57df\u306e\u30ab\u30e1\u30e9\u3078\u79fb\u52d5\u3067\u304d\u307e\u3059\u3002<\/p>\n\n            <h3>\u6d77\u3078\u884c\u304f\u524d\u306b\u78ba\u8a8d\u3057\u305f\u3044\u3053\u3068<\/h3>\n            <p>\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\u3067\u306f\u3001\u6ce2\u3084\u6d77\u9762\u306e\u72b6\u614b\u3001\u7a7a\u6a21\u69d8\u306a\u3069\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\u305f\u3060\u3057\u3001\u6620\u50cf\u3060\u3051\u3067\u904a\u6cf3\u53ef\u80fd\u304b\u3069\u3046\u304b\u3092\u5224\u65ad\u3059\u308b\u3053\u3068\u306f\u3067\u304d\u307e\u305b\u3093\u3002\u7279\u306b\u771f\u6804\u7530\u5cac\u3092\u5229\u7528\u3059\u308b\u5834\u5408\u306f\u3001\u516c\u5f0f\u30b5\u30a4\u30c8\u306e\u9ec4\u8272\u30fb\u8d64\u30d5\u30e9\u30c3\u30b0\u3001\u73fe\u5730\u30b9\u30bf\u30c3\u30d5\u306e\u6848\u5185\u3001\u6c17\u8c61\u60c5\u5831\u306a\u3069\u3082\u5fc5\u305a\u78ba\u8a8d\u3057\u3066\u304f\u3060\u3055\u3044\u3002\u6d77\u6cc1\u306f\u77ed\u6642\u9593\u3067\u5909\u5316\u3059\u308b\u3053\u3068\u304c\u3042\u308b\u305f\u3081\u3001\u5b89\u5168\u3092\u6700\u512a\u5148\u306b\u5224\u65ad\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n            <div class=\"noh-livecams__faq\">\n                <h3>\u6c96\u7e04\u306e\u6d77\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\u306b\u95a2\u3059\u308b\u3088\u304f\u3042\u308b\u8cea\u554f<\/h3>\n                <details>\n                    <summary>\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\u306e\u6620\u50cf\u306f\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u3067\u3059\u304b\uff1f<\/summary>\n                    <p>\u5404\u914d\u4fe1\u5143\u304c\u516c\u958b\u3057\u3066\u3044\u308b\u30e9\u30a4\u30d6\u6620\u50cf\u3092\u8868\u793a\u3057\u3066\u3044\u307e\u3059\u3002\u901a\u4fe1\u72b6\u6cc1\u306a\u3069\u306b\u3088\u308a\u3001\u5b9f\u969b\u306e\u6642\u523b\u304b\u3089\u591a\u5c11\u9045\u308c\u308b\u5834\u5408\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n                <\/details>\n                <details>\n                    <summary>\u30e9\u30a4\u30d6\u30ab\u30e1\u30e9\u3060\u3051\u3067\u904a\u6cf3\u53ef\u80fd\u304b\u5224\u65ad\u3067\u304d\u307e\u3059\u304b\uff1f<\/summary>\n                    <p>\u5224\u65ad\u3067\u304d\u307e\u305b\u3093\u3002\u73fe\u5730\u306e\u30d5\u30e9\u30c3\u30b0\u3084\u30b9\u30bf\u30c3\u30d5\u306e\u6848\u5185\u3001\u6c17\u8c61\u60c5\u5831\u30fb\u6ce2\u6d6a\u60c5\u5831\u306a\u3069\u3092\u512a\u5148\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n                <\/details>\n                <details>\n                    <summary>\u6620\u50cf\u304c\u8868\u793a\u3055\u308c\u306a\u3044\u5834\u5408\u306f\u3069\u3046\u3059\u308c\u3070\u3088\u3044\u3067\u3059\u304b\uff1f<\/summary>\n                    <p>\u914d\u4fe1\u5143\u304c\u4e00\u6642\u7684\u306b\u914d\u4fe1\u3092\u505c\u6b62\u3057\u3066\u3044\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002\u300cYouTube\u3067\u898b\u308b\u300d\u30dc\u30bf\u30f3\u304b\u3089\u914d\u4fe1\u5143\u306e\u72b6\u6cc1\u3082\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n                <\/details>\n                <details>\n                    <summary>\u5929\u6c17\u3068\u6f6e\u306e\u60c5\u5831\u306f\u81ea\u52d5\u66f4\u65b0\u3055\u308c\u307e\u3059\u304b\uff1f<\/summary>\n                    <p>\u5929\u6c17\u60c5\u5831\u306f5\u5206\u3054\u3068\u306b\u81ea\u52d5\u66f4\u65b0\u3055\u308c\u307e\u3059\u3002\u30bf\u30a4\u30c9\u30b0\u30e9\u30d5\u306f\u6e80\u6f6e\u30fb\u5e72\u6f6e\u306e\u4e88\u6e2c\u5024\u3092\u3082\u3068\u306b\u3057\u305f\u76ee\u5b89\u3067\u3059\u3002<\/p>\n                <\/details>\n            <\/div>\n        <\/section>\n\n        <aside class=\"noh-livecams__umi-token\" aria-label=\"\u3046\u307f\u30c8\u30fc\u30af\u30f3\u306e\u3054\u6848\u5185\">\n            <div>\n                <strong>\u3046\u307f\u30c8\u30fc\u30af\u30f3<\/strong>\n                <p>\u3053\u308c\u306f\u73fe\u5728\u6e96\u5099\u4e2d\u306e\u3046\u307f\u30c8\u30fc\u30af\u30f3\u306e\u30b5\u30f3\u30d7\u30eb\u3067\u3059\u3002<\/p>\n            <\/div>\n            <a href=\"https:\/\/info.okinawa\/?page_id=16519\">\u30b5\u30f3\u30d7\u30eb\u3092\u898b\u308b<\/a>\n        <\/aside>\n    <\/section>\n\n    <style>\n        #noh-livecams-84492 { --noh-blue:#087f9b; --noh-deep:#07556b; --noh-sky:#e9f8fb; --noh-line:#d8e8ec; color:#24343a; font-family:inherit; }\n        #noh-livecams-84492 * { box-sizing:border-box; }\n        #noh-livecams-84492 .noh-livecams__intro { margin:0 0 16px; line-height:1.75; }\n        #noh-livecams-84492 .noh-livecams__intro p { margin:0 0 8px; }\n        #noh-livecams-84492 .noh-livecams__caution { padding:11px 14px; background:#fff8e6; border-left:4px solid #e7a92b; font-size:14px; }\n        #noh-livecams-84492 .noh-livecams__filters { position:sticky; top:0; z-index:10; display:grid; grid-template-columns:repeat(4,1fr); gap:7px; margin:16px 0; padding:8px 0; background:rgba(255,255,255,.96); overflow-x:auto; }\n        #noh-livecams-84492 .noh-livecams__filters button { appearance:none; min-width:0; min-height:46px; padding:10px 8px; border:1px solid var(--noh-line); border-radius:10px; background:#fff; color:#36515a; font:700 15px\/1 inherit; cursor:pointer; }\n        #noh-livecams-84492 .noh-livecams__filters button:hover,\n        #noh-livecams-84492 .noh-livecams__filters button:focus-visible,\n        #noh-livecams-84492 .noh-livecams__filters button.is-active { background:var(--noh-blue); border-color:var(--noh-blue); color:#fff; }\n        #noh-livecams-84492 .noh-livecams__weather { margin:0 0 20px; padding:14px; border:1px solid var(--noh-line); border-radius:14px; background:linear-gradient(145deg,#f4fbfd 0%,#e7f7fb 100%); }\n        #noh-livecams-84492 .noh-livecams__weather-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }\n        #noh-livecams-84492 .noh-livecams__weather-title { color:var(--noh-deep); font-size:20px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__weather-head p { margin:3px 0 0; color:#587078; font-size:13px; }\n        #noh-livecams-84492 .noh-livecams__weather-updated { flex:none; color:#71848a; font-size:12px; }\n        #noh-livecams-84492 .noh-livecams__weather-grid { display:grid; grid-template-columns:1fr; gap:10px; }\n        #noh-livecams-84492 .noh-livecams__weather-card { min-width:0; padding:12px 14px; border-radius:11px; background:#fff; box-shadow:0 4px 14px rgba(0,69,87,.06); }\n        #noh-livecams-84492 .noh-livecams__weather-card--main { display:grid; grid-template-columns:1.25fr 1fr 1fr; align-items:center; gap:0; }\n        #noh-livecams-84492 .noh-livecams__weather-label { display:block; margin-bottom:8px; color:#587078; font-size:12px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__weather-current { display:flex; align-items:center; gap:9px; margin:0; }\n        #noh-livecams-84492 .noh-livecams__weather-current strong { color:var(--noh-deep); font-size:30px; line-height:1; }\n        #noh-livecams-84492 .noh-livecams__weather-icon { font-family:\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Noto Color Emoji\",sans-serif; font-size:26px; font-weight:400; line-height:1; }\n        #noh-livecams-84492 .noh-livecams__weather-card dl { display:contents; }\n        #noh-livecams-84492 .noh-livecams__weather-card dl div { display:flex; min-height:48px; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:0 7px; border-left:1px solid var(--noh-line); font-size:12px; }\n        #noh-livecams-84492 .noh-livecams__weather-card dt { color:#71848a; }\n        #noh-livecams-84492 .noh-livecams__weather-card dd { margin:0; font-size:14px; font-weight:800; text-align:center; white-space:nowrap; }\n        #noh-livecams-84492 .noh-livecams__wind-arrow { display:inline-block; font-weight:900; -webkit-text-stroke:.45px currentColor; }\n        #noh-livecams-84492 .noh-livecams__weather-card > p { margin:7px 0 0; color:#587078; font-size:13px; }\n        #noh-livecams-84492 .noh-livecams__hourly-wrap { margin-top:9px; padding:11px 0 7px; border-radius:11px; background:#fff; box-shadow:0 4px 14px rgba(0,69,87,.06); }\n        #noh-livecams-84492 .noh-livecams__hourly-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:0 14px 10px; }\n        #noh-livecams-84492 .noh-livecams__hourly-head strong { color:var(--noh-deep); font-size:14px; }\n        #noh-livecams-84492 .noh-livecams__hourly-head span { color:#71848a; font-size:10px; }\n        #noh-livecams-84492 .noh-livecams__hourly { display:flex; gap:7px; padding:0 12px 5px; overflow-x:auto; overscroll-behavior-x:contain; scroll-snap-type:x proximity; scrollbar-width:thin; }\n        #noh-livecams-84492 .noh-livecams__hourly-item { flex:0 0 88px; padding:9px 6px; border:1px solid #e4eef0; border-radius:10px; background:#f9fcfd; text-align:center; scroll-snap-align:start; }\n        #noh-livecams-84492 .noh-livecams__hourly-item.is-now { border:2px solid var(--noh-blue); background:#ecf9fc; }\n        #noh-livecams-84492 .noh-livecams__hourly-time { display:block; color:#36515a; font-size:12px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__hourly-icon { display:block; margin:5px 0 3px; font-family:\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Noto Color Emoji\",sans-serif; font-size:24px; line-height:1.15; }\n        #noh-livecams-84492 .noh-livecams__hourly-temp { display:block; color:var(--noh-deep); font-size:16px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__hourly-rain { display:block; margin-top:5px; color:#157a9a; font-size:11px; font-weight:700; }\n        #noh-livecams-84492 .noh-livecams__hourly-wind { display:block; margin-top:3px; color:#587078; font-size:11px; white-space:nowrap; }\n        #noh-livecams-84492 .noh-livecams__hourly-loading { padding:10px 3px; color:#71848a; font-size:12px; }\n        #noh-livecams-84492 .noh-livecams__weather-note { margin:11px 0 0; color:#71848a; font-size:11px; line-height:1.6; }\n        #noh-livecams-84492 .noh-livecams__tide { margin:0 0 20px; padding:18px; border:1px solid var(--noh-line); border-radius:14px; background:#fff; }\n        #noh-livecams-84492 .noh-livecams__tide-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:14px; }\n        #noh-livecams-84492 .noh-livecams__tide-head p { margin:3px 0 0; color:#587078; font-size:13px; }\n        #noh-livecams-84492 .noh-livecams__tide-head a { flex:none; color:var(--noh-deep); font-size:13px; font-weight:700; }\n        #noh-livecams-84492 .noh-livecams__tide-chart { margin:0 0 5px; padding:8px 5px 0; border-radius:11px; background:linear-gradient(180deg,#f4fbfd 0%,#fff 100%); overflow:hidden; }\n        #noh-livecams-84492 .noh-livecams__tide-chart svg { display:block; width:100%; height:auto; min-height:220px; }\n        #noh-livecams-84492 .noh-livecams__tide-chart-note { display:flex; align-items:center; gap:6px; margin:0 0 12px; color:#71848a; font-size:11px; line-height:1.5; }\n        #noh-livecams-84492 .noh-livecams__tide-now-key { display:inline-block; width:3px; height:13px; border-radius:2px; background:#e34a55; }\n        #noh-livecams-84492 .noh-livecams__tide-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }\n        #noh-livecams-84492 .noh-livecams__tide-group { padding:14px 16px; border-radius:11px; background:var(--noh-sky); }\n        #noh-livecams-84492 .noh-livecams__tide-label { display:block; margin-bottom:5px; color:var(--noh-deep); font-size:13px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__tide-row { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:6px 0; border-bottom:1px solid rgba(7,85,107,.12); }\n        #noh-livecams-84492 .noh-livecams__tide-row:last-child { border-bottom:0; }\n        #noh-livecams-84492 .noh-livecams__tide-row strong { color:var(--noh-deep); font-size:22px; }\n        #noh-livecams-84492 .noh-livecams__tide-row span { color:#587078; font-size:14px; }\n        #noh-livecams-84492 .noh-livecams__tide-error { margin:0; padding:12px; border-radius:9px; background:#fff8e6; font-size:13px; }\n        #noh-livecams-84492 .noh-livecams__map-wrap { margin:0 0 20px; border:1px solid var(--noh-line); border-radius:14px; background:#fff; overflow:hidden; }\n        #noh-livecams-84492 .noh-livecams__map { height:390px; overflow:hidden; z-index:1; }\n        #noh-livecams-84492 .noh-livecams__map-wind { display:flex; align-items:center; gap:7px; min-width:86px; padding:8px 10px; border:1px solid rgba(0,69,87,.18); border-radius:10px; background:rgba(255,255,255,.94); color:var(--noh-deep); box-shadow:0 3px 12px rgba(0,38,50,.16); font-family:inherit; }\n        #noh-livecams-84492 .noh-livecams__map-wind-arrow { width:25px; font-size:25px; font-weight:800; line-height:1; text-align:center; }\n        #noh-livecams-84492 .noh-livecams__map-wind-speed { font-size:13px; line-height:1; white-space:nowrap; }\n        #noh-livecams-84492 .noh-livecams__streams { display:grid; gap:18px; }\n        #noh-livecams-84492 .noh-livecams__maintenance-note { margin:0 0 12px; color:#587078; font-size:13px; line-height:1.6; }\n        #noh-livecams-84492 .noh-livecams__stream { border-radius:14px; overflow:hidden; background:#062f3b; color:#fff; scroll-margin-top:76px; }\n        #noh-livecams-84492 .noh-livecams__stream.is-featured { margin-bottom:20px; }\n        #noh-livecams-84492 .noh-livecams__stream[hidden] { display:none; }\n        #noh-livecams-84492 .noh-livecams__video { aspect-ratio:16\/9; background:#000; }\n        #noh-livecams-84492 .noh-livecams__video iframe { display:block; width:100%; height:100%; border:0; }\n        #noh-livecams-84492 .noh-livecams__video iframe:not([src]) { background:#101010; }\n        #noh-livecams-84492 .noh-livecams__viewer-info { padding:16px 18px 18px; }\n        #noh-livecams-84492 .noh-livecams__stream-meta { display:flex; align-items:center; gap:8px; margin-bottom:9px; }\n        #noh-livecams-84492 .noh-livecams__title-row { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin:0 0 5px; }\n        #noh-livecams-84492 .noh-livecams__viewer-title { color:#fff; font-size:20px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__live-status { display:inline-flex; align-items:center; min-height:24px; padding:3px 8px; border-radius:999px; font-size:11px; font-weight:800; line-height:1; }\n        #noh-livecams-84492 .noh-livecams__live-status.is-live { background:#e60035; color:#fff; }\n        #noh-livecams-84492 .noh-livecams__live-status.is-offline { background:#d7e0e3; color:#3e5259; }\n        #noh-livecams-84492 .noh-livecams__live-status.is-unknown { background:#eef2f3; color:#687b82; }\n        #noh-livecams-84492 .noh-livecams__sea-status { display:inline-flex; align-items:center; min-height:24px; padding:3px 9px; border-radius:999px; font-size:11px; font-weight:800; line-height:1; }\n        #noh-livecams-84492 .noh-livecams__sea-status.is-caution { background:#ffd84d; color:#463700; }\n        #noh-livecams-84492 .noh-livecams__sea-status.is-closed { background:#e53935; color:#fff; }\n        #noh-livecams-84492 .noh-livecams__sea-status.is-unavailable { background:#eef2f3; color:#687b82; }\n        #noh-livecams-84492 .noh-livecams__viewer-info p { margin:0 0 13px; color:#d2edf3; font-size:14px; }\n        #noh-livecams-84492 .noh-livecams__viewer-info .noh-livecams__verified { margin:-5px 0 13px; color:#a9d6df; font-size:12px; }\n        #noh-livecams-84492 .noh-livecams__viewer-links { display:flex; flex-wrap:wrap; gap:9px; }\n        #noh-livecams-84492 .noh-livecams__external { display:flex; min-height:210px; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:28px; text-align:center; }\n        #noh-livecams-84492 .noh-livecams__external-title { margin:0; color:#fff; font-size:22px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__link { display:inline-flex; align-items:center; justify-content:center; padding:11px 18px; border-radius:9px; background:#fff; color:var(--noh-deep); font-weight:700; text-decoration:none; }\n        #noh-livecams-84492 button.noh-livecams__back-map { border:0; background:#159db7; color:#fff; font-family:inherit; font-size:inherit; letter-spacing:.04em; cursor:pointer; }\n        #noh-livecams-84492 button.noh-livecams__back-map:hover { background:#087f9b; color:#fff; }\n        #noh-livecams-84492 .noh-livecams__area { padding:4px 9px; border-radius:999px; background:var(--noh-sky); color:var(--noh-deep); font-size:12px; font-weight:800; }\n        #noh-livecams-84492 .noh-livecams__place { color:#b9dce4; font-size:13px; }\n        #noh-livecams-84492 .noh-livecams__source-note { margin:20px 0 0; color:#71848a; font-size:13px; line-height:1.7; }\n        #noh-livecams-84492 .noh-livecams__seo { margin:26px 0 0; padding:24px; border:1px solid #d5e8ed; border-radius:16px; background:#fff; color:#294a54; }\n        #noh-livecams-84492 .noh-livecams__seo h2 { margin:0 0 14px; color:var(--noh-deep); font-size:24px; line-height:1.4; }\n        #noh-livecams-84492 .noh-livecams__seo h3 { margin:24px 0 9px; color:var(--noh-deep); font-size:18px; line-height:1.45; }\n        #noh-livecams-84492 .noh-livecams__seo p { margin:0 0 12px; color:#45636c; font-size:14px; line-height:1.9; }\n        #noh-livecams-84492 .noh-livecams__faq details { margin-top:9px; border:1px solid #d9e8ec; border-radius:10px; background:#f7fbfc; }\n        #noh-livecams-84492 .noh-livecams__faq summary { padding:13px 15px; color:var(--noh-deep); font-size:14px; font-weight:800; line-height:1.5; cursor:pointer; }\n        #noh-livecams-84492 .noh-livecams__faq details p { margin:0; padding:0 15px 14px; }\n        #noh-livecams-84492 .noh-livecams__umi-token { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:22px 0 0; padding:16px 18px; border:1px solid #b9e2ea; border-radius:14px; background:linear-gradient(135deg,#eefbfd 0%,#fff 100%); }\n        #noh-livecams-84492 .noh-livecams__umi-token strong { display:block; color:var(--noh-deep); font-size:17px; }\n        #noh-livecams-84492 .noh-livecams__umi-token p { margin:4px 0 0; color:#587078; font-size:13px; line-height:1.6; }\n        #noh-livecams-84492 .noh-livecams__umi-token a { flex:none; display:inline-flex; align-items:center; justify-content:center; min-height:42px; padding:9px 16px; border-radius:10px; background:var(--noh-blue); color:#fff; font-size:13px; font-weight:800; text-decoration:none; }\n        #noh-livecams-84492 .noh-livecams__umi-token a:hover { background:var(--noh-deep); color:#fff; }\n        #noh-livecams-84492 .leaflet-popup-content { margin:13px 16px; line-height:1.55; }\n        #noh-livecams-84492 .leaflet-popup-content button { margin-top:7px; padding:7px 10px; border:0; border-radius:7px; background:var(--noh-blue); color:#fff; font-weight:700; cursor:pointer; }\n        #noh-livecams-84492 .leaflet-tooltip.noh-livecams__map-label { padding:6px 9px; border:1px solid rgba(0,69,87,.25); border-radius:7px; background:rgba(255,255,255,.94); color:var(--noh-deep); box-shadow:0 2px 7px rgba(0,38,50,.12); cursor:pointer; font-size:11px; font-weight:800; white-space:nowrap; }\n        #noh-livecams-84492 .leaflet-tooltip.noh-livecams__map-label:focus-visible { outline:3px solid rgba(22,164,195,.55); outline-offset:2px; }\n        #noh-livecams-84492 .leaflet-tooltip-top.noh-livecams__map-label::before { border-top-color:rgba(255,255,255,.94); }\n        @media (max-width:680px) {\n            #noh-livecams-84492 .noh-livecams__intro { font-size:15px; }\n            #noh-livecams-84492 .noh-livecams__caution { font-size:13px; }\n            #noh-livecams-84492 .noh-livecams__map { height:330px; }\n            #noh-livecams-84492 .noh-livecams__weather { padding:12px; }\n            #noh-livecams-84492 .noh-livecams__weather-head { align-items:center; }\n            #noh-livecams-84492 .noh-livecams__weather-updated { margin-top:4px; }\n            #noh-livecams-84492 .noh-livecams__weather-grid { grid-template-columns:1fr; }\n            #noh-livecams-84492 .noh-livecams__weather-card--main { grid-column:1 \/ -1; }\n            #noh-livecams-84492 .noh-livecams__weather-card { padding:11px 12px; }\n            #noh-livecams-84492 .noh-livecams__tide { padding:14px; }\n            #noh-livecams-84492 .noh-livecams__tide-row strong { font-size:20px; }\n            #noh-livecams-84492 .noh-livecams__viewer-info { padding:14px 15px 16px; }\n            #noh-livecams-84492 .noh-livecams__viewer-title { font-size:18px; }\n            #noh-livecams-84492 .noh-livecams__seo { padding:18px 16px; }\n            #noh-livecams-84492 .noh-livecams__seo h2 { font-size:21px; }\n            #noh-livecams-84492 .noh-livecams__seo h3 { font-size:17px; }\n            #noh-livecams-84492 .noh-livecams__umi-token { align-items:stretch; flex-direction:column; gap:11px; padding:14px; }\n            #noh-livecams-84492 .noh-livecams__umi-token a { width:100%; }\n        }\n        @media (max-width:390px) {\n            #noh-livecams-84492 .noh-livecams__filters button { font-size:14px; padding-left:4px; padding-right:4px; }\n            #noh-livecams-84492 .noh-livecams__weather-title { font-size:18px; }\n            #noh-livecams-84492 .noh-livecams__weather-card { padding-left:9px; padding-right:9px; }\n            #noh-livecams-84492 .noh-livecams__weather-current { gap:5px; }\n            #noh-livecams-84492 .noh-livecams__weather-current strong { font-size:26px; }\n            #noh-livecams-84492 .noh-livecams__weather-icon { font-size:22px; }\n        }\n    <\/style>\n\n    <script>\n    document.addEventListener('DOMContentLoaded', function () {\n        var root = document.getElementById(\"noh-livecams-84492\");\n        if (!root) return;\n\n        \/\/ \u5929\u6c17\u30fb\u6f6e\u306e\u6b21\u306b\u771f\u6804\u7530\u5cac\u3001\u305d\u306e\u4e0b\u306b\u5730\u56f3\u3068\u305d\u306e\u4ed6\u306e\u30ab\u30e1\u30e9\u3092\u8868\u793a\u3059\u308b\u3002\n        var featuredStream = root.querySelector('.noh-livecams__stream[data-id=\"maeda\"]');\n        var filters = root.querySelector('.noh-livecams__filters');\n        var mapWrap = root.querySelector('.noh-livecams__map-wrap');\n        var tideSection = root.querySelector('.noh-livecams__tide');\n        if (featuredStream && tideSection) tideSection.insertAdjacentElement('afterend', featuredStream);\n        if (featuredStream && filters && mapWrap) {\n            featuredStream.insertAdjacentElement('afterend', filters);\n            filters.insertAdjacentElement('afterend', mapWrap);\n        }\n\n        function weatherName(code) {\n            if (code === 0) return '\u5feb\u6674';\n            if (code <= 3) return '\u6674\u308c\u30fb\u304f\u3082\u308a';\n            if (code === 45 || code === 48) return '\u9727';\n            if (code >= 51 && code <= 57) return '\u9727\u96e8';\n            if (code >= 61 && code <= 67) return '\u96e8';\n            if (code >= 80 && code <= 82) return '\u306b\u308f\u304b\u96e8';\n            if (code >= 95) return '\u96f7\u96e8';\n            return '\u304f\u3082\u308a';\n        }\n\n        function weatherIcon(code, isDay) {\n            if (code === 0) return isDay === 0 ? '\ud83c\udf19' : '\u2600\ufe0f';\n            if (code === 1) return isDay === 0 ? '\ud83c\udf19\u2601\ufe0f' : '\ud83c\udf24\ufe0f';\n            if (code === 2) return isDay === 0 ? '\u2601\ufe0f\ud83c\udf19' : '\u26c5';\n            if (code === 3) return '\u2601\ufe0f';\n            if (code === 45 || code === 48) return '\ud83c\udf2b\ufe0f';\n            if (code >= 51 && code <= 57) return '\ud83c\udf26\ufe0f';\n            if (code >= 61 && code <= 67) return '\ud83c\udf27\ufe0f';\n            if (code >= 71 && code <= 77) return '\ud83c\udf28\ufe0f';\n            if (code >= 80 && code <= 82) return '\ud83c\udf26\ufe0f';\n            if (code >= 85 && code <= 86) return '\ud83c\udf28\ufe0f';\n            if (code >= 95) return '\u26c8\ufe0f';\n            return '\u2601\ufe0f';\n        }\n\n        function directionName(deg) {\n            var names = ['\u5317','\u5317\u6771','\u6771','\u5357\u6771','\u5357','\u5357\u897f','\u897f','\u5317\u897f'];\n            return names[Math.round(Number(deg || 0) \/ 45) % 8];\n        }\n\n        function windArrow(deg) {\n            var arrows = ['\u2193','\u2199','\u2190','\u2196','\u2191','\u2197','\u2192','\u2198'];\n            return arrows[Math.round(Number(deg || 0) \/ 45) % 8];\n        }\n\n        function setText(selector, value) {\n            var element = root.querySelector(selector);\n            if (element) element.textContent = value;\n        }\n\n        function setWindText(selector, direction, speed) {\n            var element = root.querySelector(selector);\n            if (!element) return;\n            element.innerHTML = '<span class=\"noh-livecams__wind-arrow\">' + windArrow(direction) + '<\/span> ' + Math.round(speed) + 'm\/s';\n        }\n\n        function setWeatherIcon(code, isDay) {\n            var element = root.querySelector('[data-weather-icon]');\n            if (!element) return;\n            var label = weatherName(code);\n            element.textContent = weatherIcon(code, isDay);\n            element.setAttribute('aria-label', label);\n            element.setAttribute('title', label);\n        }\n\n        function renderHourlyWeather(weather) {\n            var holder = root.querySelector('[data-hourly-weather]');\n            if (!holder || !weather.hourly || !weather.hourly.time) return;\n            var nowHour = new Date().toLocaleString('sv-SE', { timeZone:'Asia\/Tokyo', hour12:false }).slice(0, 13).replace(' ', 'T');\n            var today = nowHour.slice(0, 10);\n            var startIndex = weather.hourly.time.findIndex(function (time) { return time.slice(0, 13) >= nowHour; });\n            if (startIndex < 0) startIndex = 0;\n            holder.innerHTML = '';\n            var endIndex = Math.min(startIndex + 10, weather.hourly.time.length);\n            for (var i = startIndex; i < endIndex; i++) {\n                var time = weather.hourly.time[i];\n                var isTomorrowMidnight = time.slice(0, 10) !== today && time.slice(11, 16) === '00:00';\n                var timeLabel = i === startIndex ? '\u73fe\u5728' : (isTomorrowMidnight ? '\u7fcc\u65e50\u6642' : time.slice(11, 16));\n                var item = document.createElement('div');\n                item.className = 'noh-livecams__hourly-item' + (i === startIndex ? ' is-now' : '');\n                var rainChance = weather.hourly.precipitation_probability[i];\n                item.innerHTML =\n                    '<span class=\"noh-livecams__hourly-time\">' + timeLabel + '<\/span>' +\n                    '<span class=\"noh-livecams__hourly-icon\" role=\"img\" aria-label=\"' + weatherName(weather.hourly.weather_code[i]) + '\">' + weatherIcon(weather.hourly.weather_code[i], weather.hourly.is_day[i]) + '<\/span>' +\n                    '<span class=\"noh-livecams__hourly-temp\">' + Math.round(weather.hourly.temperature_2m[i]) + '\u2103<\/span>' +\n                    '<span class=\"noh-livecams__hourly-rain\">\u2602 ' + (rainChance == null ? '--' : Math.round(rainChance)) + '%<\/span>' +\n                    '<span class=\"noh-livecams__hourly-wind\"><span class=\"noh-livecams__wind-arrow\">' + windArrow(weather.hourly.wind_direction_10m[i]) + '<\/span> ' + Math.round(weather.hourly.wind_speed_10m[i]) + 'm\/s<\/span>';\n                holder.appendChild(item);\n            }\n            if (!holder.children.length) holder.innerHTML = '<div class=\"noh-livecams__hourly-loading\">\u6642\u9593\u5225\u4e88\u5831\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002<\/div>';\n        }\n\n        function drawTideChart() {\n            var holder = root.querySelector('.noh-livecams__tide-chart');\n            if (!holder) return;\n            var points;\n            try { points = JSON.parse(holder.getAttribute('data-tide-points') || '[]'); } catch (error) { return; }\n            if (points.length < 2) return;\n\n            var svg = holder.querySelector('svg');\n            var ns = 'http:\/\/www.w3.org\/2000\/svg';\n            var width = Math.max(320, Math.round(holder.clientWidth || 400));\n            var height = 260, left = 30, right = 10, top = 28, bottom = 40;\n            var plotW = width - left - right, plotH = height - top - bottom;\n            svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);\n            var extended = points.slice();\n            var firstGap = Math.max(240, points[1].minute - points[0].minute);\n            var lastGap = Math.max(240, points[points.length - 1].minute - points[points.length - 2].minute);\n            extended.unshift({ minute: points[0].minute - firstGap, level: points[1].level });\n            extended.push({ minute: points[points.length - 1].minute + lastGap, level: points[points.length - 2].level });\n\n            var levels = extended.map(function (point) { return Number(point.level); });\n            var minLevel = Math.min.apply(null, levels) - 10;\n            var maxLevel = Math.max.apply(null, levels) + 10;\n            var levelRange = Math.max(1, maxLevel - minLevel);\n            function x(minute) { return left + (Math.max(0, Math.min(1440, minute)) \/ 1440) * plotW; }\n            function y(level) { return top + ((maxLevel - level) \/ levelRange) * plotH; }\n            function levelAt(minute) {\n                for (var i = 0; i < extended.length - 1; i++) {\n                    var a = extended[i], b = extended[i + 1];\n                    if (minute >= a.minute && minute <= b.minute) {\n                        var ratio = (minute - a.minute) \/ Math.max(1, b.minute - a.minute);\n                        var eased = (1 - Math.cos(Math.PI * ratio)) \/ 2;\n                        return Number(a.level) + (Number(b.level) - Number(a.level)) * eased;\n                    }\n                }\n                return Number(extended[extended.length - 1].level);\n            }\n            function node(name, attrs, textValue) {\n                var item = document.createElementNS(ns, name);\n                Object.keys(attrs || {}).forEach(function (key) { item.setAttribute(key, attrs[key]); });\n                if (textValue !== undefined) item.textContent = textValue;\n                return item;\n            }\n\n            while (svg.firstChild) svg.removeChild(svg.firstChild);\n            var defs = node('defs');\n            var gradient = node('linearGradient', { id: \"noh-livecams-84492-tide-fill\", x1:'0', y1:'0', x2:'0', y2:'1' });\n            gradient.appendChild(node('stop', { offset:'0%', 'stop-color':'#20a9c4', 'stop-opacity':'.40' }));\n            gradient.appendChild(node('stop', { offset:'100%', 'stop-color':'#20a9c4', 'stop-opacity':'.04' }));\n            defs.appendChild(gradient); svg.appendChild(defs);\n\n            [0, 360, 720, 1080, 1440].forEach(function (minute) {\n                svg.appendChild(node('line', { x1:x(minute), y1:top, x2:x(minute), y2:top + plotH, stroke:'#d8e8ec', 'stroke-width':'1' }));\n                svg.appendChild(node('text', { x:x(minute), y:height - 10, fill:'#587078', 'font-size':'14', 'font-weight':'600', 'text-anchor':minute === 0 ? 'start' : (minute === 1440 ? 'end' : 'middle') }, minute === 1440 ? '24\u6642' : (minute \/ 60) + '\u6642'));\n            });\n            [minLevel, maxLevel].forEach(function (level) {\n                svg.appendChild(node('line', { x1:left, y1:y(level), x2:left + plotW, y2:y(level), stroke:'#e4eef0', 'stroke-width':'1' }));\n            });\n\n            var path = '';\n            for (var minute = 0; minute <= 1440; minute += 10) {\n                path += (minute === 0 ? 'M' : 'L') + x(minute).toFixed(1) + ' ' + y(levelAt(minute)).toFixed(1) + ' ';\n            }\n            var area = path + 'L ' + x(1440) + ' ' + (top + plotH) + ' L ' + x(0) + ' ' + (top + plotH) + ' Z';\n            svg.appendChild(node('path', { d:area, fill:'url(#' + \"noh-livecams-84492-tide-fill\" + ')' }));\n            svg.appendChild(node('path', { d:path, fill:'none', stroke:'#087f9b', 'stroke-width':'4', 'stroke-linecap':'round', 'stroke-linejoin':'round' }));\n\n            points.forEach(function (point) {\n                var px = x(Number(point.minute)), py = y(Number(point.level));\n                var color = point.type === 'high' ? '#087f9b' : '#f0a62b';\n                var labelAnchor = Number(point.minute) < 120 ? 'start' : (Number(point.minute) > 1320 ? 'end' : 'middle');\n                svg.appendChild(node('circle', { cx:px, cy:py, r:'6', fill:'#fff', stroke:color, 'stroke-width':'4' }));\n                svg.appendChild(node('text', { x:px, y:point.type === 'high' ? py - 15 : py + 25, fill:'#27464f', 'font-size':'14', 'font-weight':'800', 'text-anchor':labelAnchor }, point.time + ' ' + point.level + 'cm'));\n            });\n\n            var parts = new Intl.DateTimeFormat('en-GB', { timeZone:'Asia\/Tokyo', hour:'2-digit', minute:'2-digit', hour12:false }).format(new Date()).split(':');\n            var nowMinute = Number(parts[0]) * 60 + Number(parts[1]);\n            svg.appendChild(node('line', { x1:x(nowMinute), y1:top, x2:x(nowMinute), y2:top + plotH, stroke:'#e34a55', 'stroke-width':'3', 'stroke-dasharray':'6 5' }));\n            svg.appendChild(node('text', { x:x(nowMinute), y:16, fill:'#e34a55', 'font-size':'14', 'font-weight':'800', 'text-anchor':'middle' }, '\u73fe\u5728'));\n        }\n\n        drawTideChart();\n        var tideResizeTimer;\n        window.addEventListener('resize', function () {\n            clearTimeout(tideResizeTimer);\n            tideResizeTimer = setTimeout(drawTideChart, 150);\n        });\n\n        var weatherUrl = 'https:\/\/api.open-meteo.com\/v1\/forecast?latitude=26.45&longitude=127.77&current=temperature_2m,precipitation,weather_code,wind_speed_10m,wind_direction_10m,is_day&hourly=temperature_2m,precipitation_probability,precipitation,weather_code,wind_speed_10m,wind_direction_10m,is_day&forecast_days=2&timezone=Asia%2FTokyo&models=jma_seamless&wind_speed_unit=ms';\n        var weatherLoaded = false;\n        var lastTimedRefresh = 0;\n\n        function loadWeather() {\n            lastTimedRefresh = Date.now();\n            fetch(weatherUrl, { cache:'no-store' }).then(function (response) {\n                if (!response.ok) throw new Error('weather');\n                return response.json();\n            }).then(function (weather) {\n                weatherLoaded = true;\n                setText('[data-weather-temp]', Math.round(weather.current.temperature_2m) + '\u2103');\n                setWeatherIcon(weather.current.weather_code, weather.current.is_day);\n                setText('[data-weather-rain]', Number(weather.current.precipitation).toFixed(1) + 'mm');\n                setWindText('[data-weather-wind]', weather.current.wind_direction_10m, weather.current.wind_speed_10m);\n                renderHourlyWeather(weather);\n                setText('[data-map-wind-arrow]', windArrow(weather.current.wind_direction_10m));\n                setText('[data-map-wind-speed]', Math.round(weather.current.wind_speed_10m) + 'm\/s');\n                var mapWind = root.querySelector('.noh-livecams__map-wind');\n                if (mapWind) {\n                    var windLabel = '\u73fe\u5728\u306e\u98a8\uff1a' + directionName(weather.current.wind_direction_10m) + '\u304b\u3089 ' + Math.round(weather.current.wind_speed_10m) + 'm\/s';\n                    mapWind.setAttribute('aria-label', windLabel);\n                    mapWind.setAttribute('title', windLabel);\n                }\n                var observedAt = weather.current.time.split('T')[1] || '';\n                setText('[data-weather-updated]', observedAt + '\u73fe\u5728');\n            }).catch(function () {\n                if (weatherLoaded) return;\n                setText('[data-weather-updated]', '\u73fe\u5728\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093');\n                var hourly = root.querySelector('[data-hourly-weather]');\n                if (hourly) hourly.innerHTML = '<div class=\"noh-livecams__hourly-loading\">\u6642\u9593\u5225\u4e88\u5831\u3092\u53d6\u5f97\u3067\u304d\u307e\u305b\u3093\u3002<\/div>';\n            });\n        }\n\n        function tokyoDateKey() {\n            var parts = new Intl.DateTimeFormat('en-US', {\n                timeZone:'Asia\/Tokyo', year:'numeric', month:'2-digit', day:'2-digit'\n            }).formatToParts(new Date());\n            var values = {};\n            parts.forEach(function (part) { values[part.type] = part.value; });\n            return values.year + '-' + values.month + '-' + values.day;\n        }\n\n        var tideDateKey = tokyoDateKey();\n        function refreshTimedData() {\n            if (tokyoDateKey() !== tideDateKey) {\n                window.location.reload();\n                return;\n            }\n            loadWeather();\n            drawTideChart();\n        }\n\n        loadWeather();\n        window.setInterval(refreshTimedData, 5 * 60 * 1000);\n        document.addEventListener('visibilitychange', function () {\n            if (!document.hidden && Date.now() - lastTimedRefresh >= 5 * 60 * 1000) refreshTimedData();\n        });\n\n        function loadLazyVideo(frame) {\n            if (!frame || frame.getAttribute('src') || !frame.dataset.src) return;\n            frame.setAttribute('src', frame.dataset.src);\n            frame.removeAttribute('data-src');\n        }\n\n        function unloadLazyVideo(frame) {\n            if (!frame) return;\n            var src = frame.getAttribute('src');\n            if (!src) return;\n            frame.dataset.src = src;\n            frame.removeAttribute('src');\n        }\n\n        function updateMaedaSeaStatus() {\n            var badge = root.querySelector('[data-maeda-sea-status]');\n            if (!badge) return;\n            fetch(\"https:\\\/\\\/info.okinawa\\\/index.php?rest_route=\\\/noh-okinawa\\\/v1\\\/maeda-status\", {\n                credentials: 'same-origin',\n                cache: 'no-store'\n            }).then(function (response) {\n                if (!response.ok) throw new Error('status request failed');\n                return response.json();\n            }).then(function (data) {\n                var status = data && ['caution', 'closed'].indexOf(data.status) !== -1 ? data.status : 'unavailable';\n                badge.className = 'noh-livecams__sea-status is-' + status;\n                badge.textContent = status === 'caution' ? '\u6ce8\u610f' : (status === 'closed' ? '\u904a\u6cf3\u7981\u6b62' : '\u78ba\u8a8d\u6642\u9593\u5916');\n            }).catch(function () {\n                badge.className = 'noh-livecams__sea-status is-unavailable';\n                badge.textContent = '\u78ba\u8a8d\u6642\u9593\u5916';\n            });\n        }\n\n        updateMaedaSeaStatus();\n        window.setInterval(updateMaedaSeaStatus, 5 * 60 * 1000);\n\n        var lazyVideos = root.querySelectorAll('.noh-livecams__video iframe');\n        if ('IntersectionObserver' in window) {\n            var videoObserver = new IntersectionObserver(function (entries) {\n                entries.forEach(function (entry) {\n                    if (entry.isIntersecting) {\n                        loadLazyVideo(entry.target);\n                    } else {\n                        unloadLazyVideo(entry.target);\n                    }\n                });\n            }, { rootMargin: '180px 0px', threshold: 0 });\n            lazyVideos.forEach(function (frame) { videoObserver.observe(frame); });\n        } else {\n            lazyVideos.forEach(loadLazyVideo);\n        }\n\n        if (typeof L === 'undefined') return;\n\n        var cams = [{\"id\":\"maeda\",\"name\":\"\u771f\u6804\u7530\u5cac\u30fb\u9752\u306e\u6d1e\u7a9f\",\"area\":\"central\",\"area_ja\":\"\u4e2d\u90e8\",\"place\":\"\u6069\u7d0d\u6751\u30fb\u771f\u6804\u7530\u5cac\",\"lat\":26.445100000000000051159076974727213382720947265625,\"lng\":127.771399999999999863575794734060764312744140625,\"type\":\"youtube_channel\",\"channel_id\":\"UCJsrzRJyPRvQeZ0QbcTSwxQ\",\"video_id\":\"FtDaGIo_kx0\",\"url\":\"https:\/\/www.youtube.com\/channel\/UCJsrzRJyPRvQeZ0QbcTSwxQ\/live\",\"status_url\":\"https:\/\/maedamisaki.jp\/sea-status\",\"provider\":\"\u771f\u6804\u7530\u5cac \u9752\u306e\u6d1e\u7a9f \u672c\u65e5\u306e\u6d77\u6cc1\",\"note\":\"\u771f\u6804\u7530\u5cac\u306e\u6d77\u9762\u3084\u6ce2\u3001\u73fe\u5730\u306e\u65d7\u306e\u72b6\u614b\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"},{\"id\":\"cahaya-bulan\",\"name\":\"CAHAYA BULAN\u30fb\u5099\u702c\",\"area\":\"north\",\"area_ja\":\"\u5317\u90e8\",\"place\":\"\u672c\u90e8\u753a\u30fb\u5099\u702c\",\"lat\":26.70213199999999886813384364359080791473388671875,\"lng\":127.87988699999999653300619684159755706787109375,\"type\":\"youtube_channel\",\"channel_id\":\"UC-NuZ8QbpIIDK8ZhzsOyEpQ\",\"video_id\":\"5ZIw5x5jnQg\",\"url\":\"https:\/\/www.youtube.com\/CAHAYABULANchannel\/live\",\"provider\":\"CAHAYA BULAN\",\"note\":\"\u5099\u702c\u306e\u6d77\u5cb8\u3068\u4f0a\u6c5f\u5cf6\u65b9\u9762\u306e\u6ce2\u3084\u5929\u5019\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"},{\"id\":\"motobu-terrace\",\"name\":\"\u30e2\u30c8\u30d6\u30c6\u30e9\u30b9\",\"area\":\"north\",\"area_ja\":\"\u5317\u90e8\",\"place\":\"\u672c\u90e8\u753a\u30fb\u4f0a\u91ce\u6ce2\",\"lat\":26.653842000000000922455001273192465305328369140625,\"lng\":127.9078659999999985075191943906247615814208984375,\"type\":\"youtube_channel\",\"channel_id\":\"UCN4r4N7n0nRmyfWbzXHi-Xg\",\"video_id\":\"Tlc3uegvdrQ\",\"url\":\"https:\/\/www.youtube.com\/channel\/UCN4r4N7n0nRmyfWbzXHi-Xg\/live\",\"provider\":\"MOTOBU TERRACE\",\"note\":\"\u672c\u90e8\u753a\u306e\u9ad8\u53f0\u304b\u3089\u6d77\u3084\u4f0a\u6c5f\u5cf6\u3001\u7a7a\u6a21\u69d8\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"},{\"id\":\"busena\",\"name\":\"\u30b6\u30fb\u30d6\u30bb\u30ca\u30c6\u30e9\u30b9\",\"area\":\"north\",\"area_ja\":\"\u5317\u90e8\",\"place\":\"\u540d\u8b77\u5e02\u30fb\u90e8\u702c\u540d\u5cac\",\"lat\":26.54189999999999827196006663143634796142578125,\"lng\":127.934200000000004138200893066823482513427734375,\"type\":\"youtube\",\"video_id\":\"VWpOgCVKoK4\",\"url\":\"https:\/\/www.youtube.com\/watch?v=VWpOgCVKoK4\",\"provider\":\"\u30b6\u30fb\u30d6\u30bb\u30ca\u30c6\u30e9\u30b9\",\"note\":\"\u90e8\u702c\u540d\u5cac\u5468\u8fba\u306e\u6771\u30b7\u30ca\u6d77\u3068\u30d3\u30fc\u30c1\u3001\u7a7a\u6a21\u69d8\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"},{\"id\":\"kariyushi-beach\",\"name\":\"\u304b\u308a\u3086\u3057\u30d3\u30fc\u30c1\",\"area\":\"north\",\"area_ja\":\"\u5317\u90e8\",\"place\":\"\u540d\u8b77\u5e02\u30fb\u559c\u702c\",\"lat\":26.5319870000000008758433978073298931121826171875,\"lng\":127.930171000000001413354766555130481719970703125,\"type\":\"youtube_channel\",\"channel_id\":\"UCiVxzgxfn4OhuDygv5o5-mg\",\"video_id\":\"THryehCFhUU\",\"url\":\"https:\/\/www.youtube.com\/channel\/UCiVxzgxfn4OhuDygv5o5-mg\/live\",\"provider\":\"\u304b\u308a\u3086\u3057\u30d3\u30fc\u30c1\",\"note\":\"\u30d3\u30fc\u30c1\u306e\u6ce2\u3084\u5929\u5019\u3001\u904a\u6cf3\u30a8\u30ea\u30a2\u5468\u8fba\u306e\u69d8\u5b50\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"},{\"id\":\"malibu\",\"name\":\"\u30de\u30ea\u30d6\u30d3\u30fc\u30c1\",\"area\":\"central\",\"area_ja\":\"\u4e2d\u90e8\",\"place\":\"\u6069\u7d0d\u6751\u30fb\u5c71\u7530\",\"lat\":26.43524000000000029331204132176935672760009765625,\"lng\":127.7840000000000060254023992456495761871337890625,\"type\":\"youtube\",\"video_id\":\"3VuKgtoZWbQ\",\"url\":\"https:\/\/www.youtube.com\/channel\/UC8bU0LyP49R7pL49LFwsPsg\/live\",\"provider\":\"\u6c96\u7e04NOW!!\",\"note\":\"\u6069\u7d0d\u6751\u5357\u90e8\u306e\u897f\u6d77\u5cb8\u3068\u6d77\u9762\u3001\u5929\u5019\u306e\u69d8\u5b50\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"},{\"id\":\"miyagi-coast\",\"name\":\"\u5bae\u57ce\u6d77\u5cb8\u30fb\u7802\u8fba\",\"area\":\"central\",\"area_ja\":\"\u4e2d\u90e8\",\"place\":\"\u5317\u8c37\u753a\u30fb\u5bae\u57ce\u6d77\u5cb8\",\"lat\":26.32907300000000105910658021457493305206298828125,\"lng\":127.7440600000000046065906644798815250396728515625,\"type\":\"youtube_channel\",\"channel_id\":\"UCAtWb74mSuUVyOtN2DfPfKQ\",\"video_id\":\"xMj8D0SKlTc\",\"url\":\"https:\/\/www.youtube.com\/channel\/UCAtWb74mSuUVyOtN2DfPfKQ\/live\",\"provider\":\"\u30aa\u30fc\u30b7\u30e3\u30f3\u30d3\u30e5\u30fc\u5317\u8c37\u753a\u7802\u8fba\u3001\u5bae\u57ce\u6d77\u5cb8\",\"note\":\"\u5317\u8c37\u753a\u30fb\u7802\u8fba\u5468\u8fba\u306e\u6ce2\u3084\u6d77\u9762\u3001\u5929\u5019\u306e\u69d8\u5b50\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"},{\"id\":\"senaga-airport\",\"name\":\"\u702c\u9577\u5cf6\u30fb\u90a3\u8987\u7a7a\u6e2f\",\"area\":\"south\",\"area_ja\":\"\u5357\u90e8\",\"place\":\"\u8c4a\u898b\u57ce\u5e02\u30fb\u702c\u9577\u5cf6\",\"lat\":26.174600000000001642774805077351629734039306640625,\"lng\":127.646399999999999863575794734060764312744140625,\"type\":\"youtube_channel_keyword\",\"channel_id\":\"UCCpZAU0b2vZv598fDBlTlqw\",\"keywords\":[\"\u30e8\u30ca\u30fc\u30ba\u30ac\u30fc\u30c7\u30f3\",\"\u702c\u9577\u5cf6\"],\"video_id\":\"3e_uPkJCTNo\",\"url\":\"https:\/\/www.youtube.com\/channel\/UCCpZAU0b2vZv598fDBlTlqw\/streams\",\"provider\":\"BANKSY GINOWAN\",\"note\":\"\u702c\u9577\u5cf6\u304b\u3089\u6d77\u3068\u90a3\u8987\u7a7a\u6e2f\u306e\u6ed1\u8d70\u8def\u3001\u7a7a\u6a21\u69d8\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002\",\"verified\":\"2026\u5e749\u670826\u65e5\"}];\n        var map = L.map(root.querySelector('.noh-livecams__map'), { scrollWheelZoom: false }).setView([26.4451, 127.7714], 12);\n        var markers = [];\n        var areaViews = {\n            all:     { center: [26.4451, 127.7714], zoom: 12 },\n            north:   { center: [26.6150, 127.9100], zoom: 11 },\n            central: { center: [26.3950, 127.7800], zoom: 11 },\n            south:   { center: [26.2380, 127.6786], zoom: 11 }\n        };\n\n        var WindControl = L.Control.extend({\n            options: { position: 'topright' },\n            onAdd: function () {\n                var control = L.DomUtil.create('div', 'noh-livecams__map-wind');\n                control.setAttribute('aria-label', '\u73fe\u5728\u306e\u98a8\u3092\u8aad\u307f\u8fbc\u307f\u4e2d');\n                control.innerHTML = '<span class=\"noh-livecams__map-wind-arrow\" data-map-wind-arrow>\u2026<\/span><strong class=\"noh-livecams__map-wind-speed\" data-map-wind-speed>--m\/s<\/strong>';\n                L.DomEvent.disableClickPropagation(control);\n                return control;\n            }\n        });\n        new WindControl().addTo(map);\n\n        L.tileLayer('https:\/\/{s}.tile.openstreetmap.org\/{z}\/{x}\/{y}.png', {\n            maxZoom: 18,\n            attribution: '&copy; <a href=\"https:\/\/www.openstreetmap.org\/copyright\">OpenStreetMap<\/a>'\n        }).addTo(map);\n\n        function escapeHtml(value) {\n            return String(value).replace(\/[&<>'\"]\/g, function (char) {\n                return {'&':'&amp;','<':'&lt;','>':'&gt;',\"'\":'&#039;','\"':'&quot;'}[char];\n            });\n        }\n\n        function openCamera(id) {\n            var stream = root.querySelector('.noh-livecams__stream[data-id=\"' + id + '\"]');\n            if (!stream) return;\n\n            stream.hidden = false;\n            loadLazyVideo(stream.querySelector('iframe[data-src]'));\n\n            setTimeout(function () {\n                var top = stream.getBoundingClientRect().top + window.pageYOffset - 76;\n                window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n            }, 180);\n        }\n\n        \/\/ \u8fd1\u63a5\u3059\u308b\u30d4\u30f3\u540c\u58eb\u306e\u540d\u524d\u304c\u91cd\u306a\u3089\u306a\u3044\u3088\u3046\u3001\u8868\u793a\u65b9\u5411\u3092\u5de6\u53f3\u3078\u632f\u308a\u5206\u3051\u308b\u3002\n        var labelPositions = {\n            'cahaya-bulan':   { direction: 'left',  offset: [-20, 0] },\n            'motobu-terrace': { direction: 'left',  offset: [-20, 0] },\n            'busena':         { direction: 'right', offset: [-12, 0] },\n            'kariyushi-beach':{ direction: 'left',  offset: [-20, 0] },\n            'maeda':          { direction: 'left',  offset: [-20, 0] },\n            'malibu':         { direction: 'right', offset: [-12, 0] },\n            'miyagi-coast':   { direction: 'left',  offset: [-20, 0] },\n            'senaga-airport': { direction: 'left',  offset: [-20, 0] }\n        };\n\n        cams.forEach(function (cam) {\n            var marker = L.marker([cam.lat, cam.lng]).addTo(map);\n            var labelPosition = labelPositions[cam.id] || { direction: 'left', offset: [-20, 0] };\n            marker.camId = cam.id;\n            marker.camArea = cam.area;\n            marker.on('tooltipopen', function (event) {\n                var label = event.tooltip.getElement();\n                if (!label || label.dataset.cameraClickReady === '1') return;\n                label.dataset.cameraClickReady = '1';\n                label.setAttribute('role', 'button');\n                label.setAttribute('tabindex', '0');\n                label.setAttribute('aria-label', cam.name + '\u306e\u6620\u50cf\u3092\u898b\u308b');\n                label.addEventListener('click', function (clickEvent) {\n                    L.DomEvent.stopPropagation(clickEvent);\n                    openCamera(cam.id);\n                });\n                label.addEventListener('keydown', function (keyEvent) {\n                    if (keyEvent.key !== 'Enter' && keyEvent.key !== ' ') return;\n                    keyEvent.preventDefault();\n                    openCamera(cam.id);\n                });\n            });\n            marker.bindTooltip(escapeHtml(cam.name), {\n                permanent: true,\n                direction: labelPosition.direction,\n                offset: labelPosition.offset,\n                className: 'noh-livecams__map-label',\n                interactive: true\n            });\n            marker.on('click', function () { openCamera(cam.id); });\n            markers.push(marker);\n        });\n\n        \/\/ \u30ab\u30e1\u30e9\u306e\u306a\u3044\u5317\u7aef\u3082\u542b\u3081\u3001\u6c96\u7e04\u672c\u5cf6\u5168\u4f53\u304c\u53ce\u307e\u308b\u8868\u793a\u7bc4\u56f2\u3002\n        var okinawaIslandBounds = L.latLngBounds(\n            [26.0450, 127.6000],\n            [26.9000, 128.3500]\n        );\n\n        function showAllCameras(animate) {\n            var baseZoom = map.getBoundsZoom(okinawaIslandBounds, false, L.point(20, 20));\n            var isDesktop = window.matchMedia('(min-width: 769px)').matches;\n            var targetZoom = Math.min(baseZoom + (isDesktop ? 0 : 1), 10);\n            var targetCenter = okinawaIslandBounds.getCenter();\n            if (!isDesktop) {\n                targetCenter = L.latLng(targetCenter.lat, targetCenter.lng - 0.10);\n            }\n            map.setView(targetCenter, targetZoom, { animate: animate });\n        }\n\n        showAllCameras(false);\n\n        root.querySelectorAll('.noh-livecams__filters button').forEach(function (button) {\n            button.addEventListener('click', function () {\n                var area = button.dataset.area;\n                root.querySelectorAll('.noh-livecams__filters button').forEach(function (item) { item.classList.remove('is-active'); });\n                button.classList.add('is-active');\n                root.querySelectorAll('.noh-livecams__stream').forEach(function (stream) {\n                    stream.hidden = area !== 'all' && stream.dataset.area !== area;\n                });\n                markers.forEach(function (marker) {\n                    var shouldShow = area === 'all' || marker.camArea === area;\n                    if (shouldShow && !map.hasLayer(marker)) marker.addTo(map);\n                    if (!shouldShow && map.hasLayer(marker)) map.removeLayer(marker);\n                });\n                if ('all' === area) {\n                    showAllCameras(true);\n                } else if (areaViews[area]) {\n                    map.setView(areaViews[area].center, areaViews[area].zoom, { animate: true });\n                }\n            });\n        });\n\n        root.addEventListener('click', function (event) {\n            var button = event.target.closest('[data-back-to-map]');\n            if (!button) return;\n            var mapElement = root.querySelector('.noh-livecams__map-wrap');\n            if (!mapElement) return;\n            var stream = button.closest('.noh-livecams__stream');\n            var cameraId = stream ? stream.dataset.id : '';\n            var camera = cams.find(function (cam) { return cam.id === cameraId; });\n            var marker = markers.find(function (item) { return item.camId === cameraId; });\n            if (camera) {\n                if (marker && !map.hasLayer(marker)) marker.addTo(map);\n                map.flyTo([camera.lat, camera.lng], 12, { animate:true, duration:.6 });\n                if (marker) marker.openTooltip();\n            }\n            var top = mapElement.getBoundingClientRect().top + window.pageYOffset - 76;\n            window.scrollTo({ top: Math.max(0, top), behavior: 'smooth' });\n            setTimeout(function () {\n                map.invalidateSize();\n                if (camera) map.setView([camera.lat, camera.lng], 12, { animate:false });\n                if (marker) marker.openTooltip();\n            }, 450);\n        });\n\n        setTimeout(function () {\n            map.invalidateSize();\n            showAllCameras(false);\n        }, 250);\n    });\n    <\/script>\n    \n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"pochipp_cv_data":"","footnotes":""},"class_list":["post-16451","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/info.okinawa\/index.php?rest_route=\/wp\/v2\/pages\/16451","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/info.okinawa\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/info.okinawa\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/info.okinawa\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/info.okinawa\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=16451"}],"version-history":[{"count":3,"href":"https:\/\/info.okinawa\/index.php?rest_route=\/wp\/v2\/pages\/16451\/revisions"}],"predecessor-version":[{"id":16455,"href":"https:\/\/info.okinawa\/index.php?rest_route=\/wp\/v2\/pages\/16451\/revisions\/16455"}],"wp:attachment":[{"href":"https:\/\/info.okinawa\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=16451"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}