:root {
  color-scheme: dark;
  --uki-ink: #f5f8f6;
  --uki-muted: #a9bab9;
  --uki-deep: #06151c;
  --uki-deep-2: #0a222b;
  --uki-sea: #0f6170;
  --uki-sea-light: #2ca4ae;
  --uki-gold: #d6b568;
  --uki-line: rgba(255,255,255,.13);
  --uki-glass: rgba(7, 25, 33, .76);
  --uki-shadow: 0 22px 80px rgba(0,0,0,.42);
}
* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--uki-ink);
  background:
    radial-gradient(circle at 80% -10%, rgba(44,164,174,.28), transparent 36rem),
    radial-gradient(circle at 0 35%, rgba(214,181,104,.08), transparent 32rem),
    linear-gradient(180deg, #06131a 0%, #071b23 45%, #06131a 100%);
  font-family: "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", system-ui, sans-serif;
  line-height: 1.75;
}
a { color: inherit; }
.uki-skip {
  position: fixed; top: .5rem; left: .5rem; z-index: 1000;
  transform: translateY(-180%); padding: .7rem 1rem; border-radius: 999px;
  background: #fff; color: #06151c; font-weight: 700;
}
.uki-skip:focus { transform: none; }
.uki-shell { min-height: 100vh; }
.uki-header {
  position: sticky; top: 0; z-index: 50;
  border-bottom: 1px solid var(--uki-line);
  background: rgba(4, 17, 23, .84);
  backdrop-filter: blur(20px) saturate(130%);
  -webkit-backdrop-filter: blur(20px) saturate(130%);
}
.uki-header-inner {
  width: min(1440px, calc(100% - 40px)); margin: auto;
  min-height: 72px; display: flex; align-items: center; gap: 22px;
}
.uki-brand { display: flex; align-items: center; gap: 12px; text-decoration: none; min-width: max-content; }
.uki-mark {
  width: 38px; height: 38px; border: 1px solid rgba(214,181,104,.62); border-radius: 50%;
  display: grid; place-items: center; position: relative; color: var(--uki-gold);
}
.uki-mark::before, .uki-mark::after { content: ""; position: absolute; background: currentColor; opacity: .65; }
.uki-mark::before { width: 1px; height: 25px; }
.uki-mark::after { width: 25px; height: 1px; }
.uki-mark span { width: 8px; height: 8px; border-radius: 50%; background: currentColor; box-shadow: 0 0 18px currentColor; }
.uki-brand-text { display: grid; line-height: 1.15; }
.uki-brand-text strong { font-size: .95rem; letter-spacing: .06em; }
.uki-brand-text small { margin-top: 4px; color: var(--uki-muted); font-size: .62rem; letter-spacing: .16em; }
.uki-nav { margin-left: auto; display: flex; align-items: center; gap: 3px; }
.uki-nav a {
  text-decoration: none; color: #c9d6d4; font-size: .74rem; font-weight: 650;
  padding: .55rem .7rem; border-radius: 999px; white-space: nowrap; transition: .2s ease;
}
.uki-nav a:hover, .uki-nav a[aria-current="page"] { color: #fff; background: rgba(255,255,255,.09); }
.uki-menu-button {
  display: none; margin-left: auto; width: 44px; height: 44px; border-radius: 50%;
  border: 1px solid var(--uki-line); background: rgba(255,255,255,.04); color: #fff;
}
.uki-menu-button i, .uki-menu-button::before, .uki-menu-button::after {
  content: ""; display: block; width: 18px; height: 1px; margin: 4px auto; background: currentColor;
}
.uki-hero {
  position: relative; overflow: hidden; border-bottom: 1px solid var(--uki-line);
  background:
    linear-gradient(90deg, rgba(3,14,20,.96), rgba(3,14,20,.72) 55%, rgba(3,14,20,.36)),
    radial-gradient(circle at 82% 45%, rgba(44,164,174,.28), transparent 24rem);
}
.uki-hero::before {
  content: ""; position: absolute; inset: 0; opacity: .18; pointer-events: none;
  background-image: linear-gradient(rgba(255,255,255,.12) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.12) 1px, transparent 1px);
  background-size: 70px 70px; mask-image: linear-gradient(90deg, transparent, #000 50%, #000);
}
.uki-hero-inner {
  position: relative; width: min(1280px, calc(100% - 40px)); margin: auto;
  padding: clamp(54px, 7vw, 104px) 0 clamp(48px, 6vw, 84px);
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(260px, .48fr); gap: 60px; align-items: end;
}
.uki-eyebrow { margin: 0 0 12px; color: var(--uki-gold); font-size: .72rem; font-weight: 800; letter-spacing: .22em; }
.uki-hero h1 { margin: 0; max-width: 15ch; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(2.1rem, 5.1vw, 5.1rem); line-height: 1.16; letter-spacing: .04em; font-weight: 600; text-wrap: balance; }
.uki-hero-copy { margin: 24px 0 0; max-width: 62ch; color: #c2d0ce; font-size: clamp(.96rem, 1.3vw, 1.08rem); }
.uki-source-card {
  padding: 24px; border: 1px solid var(--uki-line); border-radius: 22px;
  background: linear-gradient(145deg, rgba(255,255,255,.075), rgba(255,255,255,.025)); box-shadow: var(--uki-shadow);
}
.uki-source-card p { margin: 0; color: #c4d2d0; font-size: .82rem; }
.uki-source-card strong { display: block; margin-top: 7px; color: #fff; font-size: 1.02rem; word-break: break-all; }
.uki-source-card a {
  display: inline-flex; margin-top: 16px; padding: .65rem .95rem; border-radius: 999px;
  color: #07151c; background: var(--uki-gold); text-decoration: none; font-size: .78rem; font-weight: 800;
}
.uki-notice {
  width: min(1280px, calc(100% - 40px)); margin: 26px auto 0; padding: 13px 17px;
  border: 1px solid rgba(214,181,104,.26); border-radius: 14px; color: #d5dddc; background: rgba(214,181,104,.055); font-size: .82rem;
}

.uki-stage { width: min(1180px, calc(100% - 32px)); margin: 28px auto 64px; }
.uki-content-shell {
  position: relative; overflow: hidden; border: 1px solid var(--uki-line); border-radius: 26px;
  background: #fbfaf6; color: #172a2f; box-shadow: var(--uki-shadow);
}
.uki-content-toolbar {
  min-height: 50px; padding: 0 18px; display: flex; align-items: center; gap: 10px;
  color: #b9c8c6; border-bottom: 1px solid rgba(255,255,255,.09); background: #0a2029;
  font-size: .72rem; letter-spacing: .08em;
}
.uki-content-toolbar i { width: 8px; height: 8px; border-radius: 50%; background: #d6b568; box-shadow: 14px 0 0 #2ca4ae, 28px 0 0 #6d8586; margin-right: 29px; }
.uki-content-status { margin-left: auto; display: flex; align-items: center; gap: 8px; color: #b7c5c4; white-space: nowrap; }
.uki-content-status::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: #2ca4ae; box-shadow: 0 0 12px rgba(44,164,174,.75); }
.uki-native-content { min-height: 480px; padding: clamp(22px, 4vw, 58px); background: #fbfaf6; }
.uki-loading {
  min-height: 420px; display: flex; align-items: center; justify-content: center; gap: 13px;
  color: #355157; background: #fbfaf6; font-size: .9rem;
}
.uki-loading::before {
  content: ""; width: 30px; height: 30px; border: 2px solid rgba(15,97,112,.18); border-top-color: #0f6170; border-radius: 50%; animation: uki-spin .8s linear infinite;
}
@keyframes uki-spin { to { transform: rotate(360deg); } }
.uki-error { padding: 72px 24px; text-align: center; color: #263b40; background: #fbfaf6; }
.uki-error a { color: #0f6170; font-weight: 800; }

/* Native reconstruction of legacy BiND content. No page-level iframe is used. */
.uki-native-content, .uki-native-content * { box-sizing: border-box; }
.uki-native-content { font-family: "Hiragino Sans", "Yu Gothic", "YuGothic", "Noto Sans JP", system-ui, sans-serif; line-height: 1.9; overflow-wrap: anywhere; }
.uki-native-content > :first-child { margin-top: 0 !important; }
.uki-native-content img { max-width: 100% !important; height: auto !important; border-radius: 12px; }
.uki-native-content iframe, .uki-native-content video, .uki-native-content embed, .uki-native-content object { max-width: 100% !important; }
.uki-native-content table { width: 100% !important; max-width: 100%; border-collapse: collapse; display: block; overflow-x: auto; }
.uki-native-content td, .uki-native-content th { padding: .65rem .75rem; border: 1px solid #d6dfdc; }
.uki-native-content a { color: #0b6c79; text-decoration-thickness: .08em; text-underline-offset: .18em; }
.uki-native-content a:hover { color: #084e57; }
.uki-native-content h1, .uki-native-content h2, .uki-native-content h3, .uki-native-content h4, .uki-native-content h5, .uki-native-content h6 {
  color: #132b31; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; line-height: 1.45; letter-spacing: .025em;
}
.uki-native-content h1 { margin: 0 0 1.35rem; font-size: clamp(2rem, 5vw, 4rem); }
.uki-native-content h2 { margin: 3.2rem 0 1.25rem; padding-bottom: .65rem; border-bottom: 1px solid #cbd8d5; font-size: clamp(1.65rem, 3.4vw, 2.55rem); }
.uki-native-content h3 { margin: 2.6rem 0 1rem; color: #0c6571; font-size: clamp(1.35rem, 2.5vw, 1.9rem); }
.uki-native-content h4 { margin: 2rem 0 .75rem; font-size: clamp(1.08rem, 2vw, 1.35rem); }
.uki-native-content p { margin: 0 0 1.15rem; color: #2a3f44; }
.uki-native-content ul, .uki-native-content ol { margin: 1rem 0 1.5rem; padding-left: 1.4rem; }
.uki-native-content li { margin: .35rem 0; }
.uki-native-content blockquote { margin: 1.8rem 0; padding: 1.1rem 1.35rem; border-left: 4px solid #d6b568; background: #f4f0e5; color: #31474b; }
.uki-native-content hr { margin: 2.5rem 0; border: 0; border-top: 1px solid #d6dfdc; }

/* Neutralize common BiND fixed-width/scaffolding rules after DOM import. */
.uki-native-content [id^="bind-"], .uki-native-content [class*="bind-"],
.uki-native-content .b-body, .uki-native-content .b-plain, .uki-native-content .b-both,
.uki-native-content .column, .uki-native-content .column-inner, .uki-native-content .block,
.uki-native-content .block-inner, .uki-native-content .area, .uki-native-content .area-inner,
.uki-native-content .container, .uki-native-content .container-fluid {
  max-width: 100% !important; min-width: 0 !important; width: auto !important; height: auto !important;
}
.uki-native-content [style*="width"] { max-width: 100% !important; }
.uki-native-content [style*="min-width"] { min-width: 0 !important; }
.uki-native-content [style*="position: fixed"], .uki-native-content [style*="position:fixed"] { position: static !important; }
.uki-native-content .clear, .uki-native-content .clearfix { clear: both; }
.uki-native-content .clearfix::after { content: ""; display: table; clear: both; }


/* Preserve and restyle the complete original BiND page, including its own menus and notices. */
.uki-native-content #bind-wrap, .uki-native-content #page, .uki-native-content #wrapper,
.uki-native-content #container, .uki-native-content #contents, .uki-native-content #content,
.uki-native-content #area-contents, .uki-native-content .site_frame, .uki-native-content .site-frame,
.uki-native-content .bind-site, .uki-native-content .bd-container {
  width: 100% !important; max-width: 100% !important; min-width: 0 !important; margin-inline: auto !important;
}
.uki-native-content #area-header, .uki-native-content header, .uki-native-content .header,
.uki-native-content #area-billboard, .uki-native-content .billboard, .uki-native-content [class*="billboard"] {
  max-width: 100% !important; border-radius: 18px; overflow: hidden; margin-bottom: 24px;
}
.uki-native-content nav ul, .uki-native-content .menu ul, .uki-native-content [class*="menu"] ul {
  display: flex !important; flex-wrap: wrap !important; gap: 8px !important; padding: 12px !important; list-style: none !important;
}
.uki-native-content nav li, .uki-native-content .menu li, .uki-native-content [class*="menu"] li { margin: 0 !important; }
.uki-native-content nav a, .uki-native-content .menu a, .uki-native-content [class*="menu"] a {
  display: inline-flex !important; padding: .52rem .8rem !important; border: 1px solid #d6dfdc !important;
  border-radius: 999px !important; background: #fff !important; text-decoration: none !important; font-size: .86em !important;
}
.uki-native-content noscript, .uki-native-content .js-off, .uki-native-content .no-js,
.uki-native-content #noscript, .uki-native-content [class*="noscript"] { display: none !important; }

.uki-native-content .ukigov-import-note { margin: 0 0 2rem; padding: .9rem 1rem; border: 1px solid #d8e1de; border-radius: 12px; background: #f4f7f5; color: #546568; font-size: .78rem; }
.uki-native-content .ukigov-source-title { margin: 0 0 2rem; color: #7b8a8c; font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }

@media (max-width: 640px) {
  .uki-stage { width: calc(100% - 10px); margin-top: 12px; }
  .uki-content-shell { border-radius: 15px; }
  .uki-content-toolbar { padding: 0 12px; }
  .uki-content-toolbar > span:not(.uki-content-status) { display: none; }
  .uki-native-content { padding: 22px 16px 34px; }
  .uki-native-content h2 { margin-top: 2.4rem; }
}
.uki-footer { border-top: 1px solid var(--uki-line); color: #96aaa8; }
.uki-footer-inner {
  width: min(1280px, calc(100% - 40px)); margin: auto; padding: 28px 0 40px;
  display: flex; justify-content: space-between; gap: 30px; font-size: .72rem;
}
.uki-footer a { color: #d4dfdd; }
@media (max-width: 1120px) {
  .uki-nav { display: none; position: absolute; top: 72px; left: 0; right: 0; padding: 14px 20px 20px; flex-wrap: wrap; background: rgba(4,17,23,.98); border-bottom: 1px solid var(--uki-line); }
  .uki-nav.is-open { display: flex; }
  .uki-menu-button { display: block; }
  .uki-hero-inner { grid-template-columns: 1fr; gap: 32px; }
  .uki-source-card { max-width: 620px; }
}
@media (max-width: 640px) {
  .uki-header-inner, .uki-hero-inner, .uki-notice, .uki-footer-inner { width: min(100% - 24px, 1280px); }
  .uki-brand-text small { display: none; }
  .uki-hero-inner { padding-top: 46px; }
  .uki-hero h1 { max-width: none; font-size: clamp(2rem, 11vw, 3.3rem); }
  .uki-footer-inner { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation: none !important; transition: none !important; } }
