@charset "UTF-8";

.card-preview{display:block;margin:-24px -24px 20px;overflow:hidden;border-radius:9px 9px 0 0;background:#eef3f6}.card-preview img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover}.detail-image{margin:0 0 28px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--panel)}.detail-image img{display:block;max-width:100%;height:auto;margin:auto}.markdown{color:#4b5a69;overflow-wrap:anywhere}.markdown h2,.markdown h3,.markdown h4,.markdown h5,.markdown h6{color:var(--text);line-height:1.6;margin:1.7em 0 .65em}.markdown h2{font-size:23px}.markdown h3{font-size:19px}.markdown h4{font-size:16px}.markdown p{margin:0 0 1.1em}.markdown a{color:var(--blue);text-decoration:underline;text-underline-offset:3px}.markdown img{display:block;max-width:100%;height:auto;border-radius:8px;margin:18px 0}.markdown pre{overflow-x:auto;padding:18px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:12px;line-height:1.7}.markdown code{font-family:Consolas,monospace;font-size:.9em}.markdown :not(pre)>code{padding:2px 5px;border-radius:4px;background:var(--panel)}.markdown blockquote{border-left:3px solid var(--blue);margin:20px 0;padding:3px 0 3px 18px;color:var(--muted)}.markdown table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:20px 0;font-size:13px}.markdown th,.markdown td{border:1px solid var(--line);padding:9px 13px;text-align:left}.markdown th{background:var(--panel)}.markdown li{margin-bottom:7px}.markdown hr{border:0;border-top:1px solid var(--line);margin:28px 0}
:root{color-scheme:light;--bg:#ffffff;--panel:#f7f9fb;--line:#e1e7ec;--muted:#657281;--text:#252d37;--blue:#2c637f;--max:1160px;font-family:Inter,"Segoe UI","Noto Sans JP","Yu Gothic UI",Meiryo,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:28px}body{margin:0;background:var(--bg);color:var(--text);font-size:15px;line-height:1.85}a{color:inherit;text-decoration:none}button,input,select{font:inherit}a,input,select{outline-offset:6px}a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--blue)}a:hover{color:var(--blue)}[hidden]{display:none!important}.wrap{width:min(var(--max),calc(100% - 80px));margin-inline:auto}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.skip{position:absolute;top:-80px;left:20px;padding:10px;background:var(--blue);color:var(--bg);z-index:10}.skip:focus{top:8px}.header{height:104px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:15px;font-size:20px;font-weight:700;line-height:1.2;letter-spacing:-.5px}.brand-light{font-weight:400;color:#657281}.brand small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:2px;color:var(--muted);margin-top:8px}.cloud{display:flex;align-items:center;justify-content:center;width:47px;flex-shrink:0}.cloud i{border:2px solid currentColor;width:12px;height:12px;display:block;border-radius:50%;margin:0 -1px}.cloud i:nth-child(2){width:25px;height:25px;border-width:3px}.brand>.cloud{color:var(--blue)}nav{display:flex;gap:30px;align-items:center;font-size:12px;color:#4c5968}.nav-home{border:1px solid var(--line);padding:7px 16px;border-radius:6px}.nav-home span{margin-left:9px}.hero{display:grid;grid-template-columns:1.3fr 1fr;align-items:center;min-height:530px;gap:20px;padding-block:70px}.eyebrow{font-size:10px;letter-spacing:2px;font-weight:600;color:var(--blue);display:flex;align-items:center;gap:10px}.status-dot{width:6px;height:6px;background:var(--blue);border-radius:50%;display:inline-block;flex-shrink:0;box-shadow:0 0 12px #2c637f22}.hero h1{font-size:clamp(32px,3.4vw,46px);line-height:1.65;letter-spacing:-1.7px;margin:22px 0 18px;font-weight:700}.highlight{color:var(--blue)}.hero-copy>p{font-size:14px;line-height:2.1;color:var(--muted);margin:0 0 28px}.hero-actions{display:flex;gap:12px}.button{padding:12px 21px;border:1px solid var(--line);border-radius:6px;font-size:12px;font-weight:600;display:inline-flex;gap:22px;justify-content:center;align-items:center;transition:background .15s,transform .15s}.button:hover{transform:translateY(-2px)}.primary{background:var(--blue);border-color:var(--blue);color:#ffffff}.primary:hover{background:#244f66;color:#ffffff}.secondary{background:#ffffff}.hero-notes{display:flex;gap:20px;color:#657281;font-size:10px;margin-top:25px}.hero-notes span::before{content:"✓";color:var(--blue);margin-right:6px}.hero-art{position:relative;height:365px;background:radial-gradient(ellipse at center,#2c637f0b,transparent 67%);display:grid;place-items:center;overflow:hidden}.hero-art:before{content:"";position:absolute;inset:10px;background-image:radial-gradient(#2c637f24 1px,transparent 1px);background-size:23px 23px;mask-image:radial-gradient(ellipse,black,transparent 68%)}.orbit{position:absolute;left:50%;top:50%;border:1px solid #c9dce5;border-radius:50%;transform:translate(-50%,-50%) rotate(-27deg)}.orbit-one{width:330px;height:220px}.orbit-two{width:235px;height:330px;transform:translate(-50%,-50%) rotate(39deg);border-style:dashed;border-color:#d5e3eb}.art-core{width:130px;height:130px;border:1px solid #b9d0dd;border-radius:30px;display:grid;place-items:center;transform:rotate(-9deg);background:linear-gradient(135deg,#ffffff,#edf4f7);box-shadow:0 0 70px #2c637f0d,inset 0 0 20px #2c637f0a}.art-core .cloud{transform:rotate(9deg) scale(1.65);color:var(--blue)}.satellite{position:absolute;width:47px;height:47px;display:grid;place-items:center;border:1px solid #d5e1e9;border-radius:13px;background:#ffffff;color:#2c637f;font-family:monospace;font-size:18px;box-shadow:0 6px 24px #2c637f0b}.sat-one{left:14%;top:22%;transform:rotate(-12deg)}.sat-two{right:12%;top:32%;transform:rotate(13deg);font-size:26px}.sat-three{bottom:14%;left:34%;transform:rotate(8deg)}.art-label{position:absolute;top:12px;right:18px;font:9px monospace;letter-spacing:2px;color:#738493}.art-coordinate{position:absolute;bottom:4px;left:20px;font:9px monospace;letter-spacing:1.5px;color:#738493}.art-note{position:absolute;bottom:52px;right:5px;background:#ffffff;border:1px solid #d9e4ea;border-radius:5px;padding:7px 12px;font:10px monospace;color:#496273}.art-note .status-dot{width:5px;height:5px;margin-right:7px}.principles{display:grid;grid-template-columns:repeat(3,1fr);border-block:1px solid var(--line);padding-block:22px}.principles>div{display:flex;align-items:center;gap:12px;padding-left:24px;border-left:1px solid var(--line);font-size:10px;color:var(--muted)}.principles>div:first-child{border:0;padding-left:0}.principle-num{font-family:monospace;font-size:10px;color:#738493}.principles strong{font-size:12px;color:var(--text);white-space:nowrap}.catalog{padding-block:66px 75px;scroll-margin-top:20px}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:25px}.section-heading h2{font-size:27px;letter-spacing:-1px;margin:8px 0 0;display:flex;align-items:center;gap:15px}.count{font:12px monospace;border:1px solid var(--line);padding:4px 9px;border-radius:5px;color:var(--muted)}.section-heading>p{color:var(--muted);font-size:12px;margin:0 0 4px}.empty{min-height:260px;border:1px dashed #d4dee6;border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;background:radial-gradient(ellipse at 50% 0,#edf4f7,transparent 60%)}.empty-icon{font-size:22px;background:#ffffff;border:1px solid #d5e1e8;border-radius:12px;width:45px;height:45px;line-height:43px;color:var(--blue)}.empty h3{font-size:17px;margin:15px 0 5px}.empty p{color:var(--muted);font-size:12px;margin:0 0 15px}.small-label{font-size:10px;color:#5d6e7e;border:1px solid var(--line);padding:2px 10px;border-radius:30px}.small-label .status-dot{width:4px;height:4px;margin-right:5px}.filters{display:flex;gap:15px;margin:25px 0 12px}.search{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:9px 15px;flex:1;color:var(--muted)}input{color:var(--text);background:none;border:none;width:100%;font-size:13px}input::placeholder{color:#738493}select{height:46px;background:var(--panel);color:var(--muted);border:1px solid var(--line);border-radius:6px;padding:0 12px;font-size:12px}.result-count{font-size:11px;color:var(--muted)}.app-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.app-card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:24px;transition:border-color .2s}.app-card:hover{border-color:#8caebe}.card-top{display:flex;justify-content:space-between;align-items:center}.app-icon{background:#edf4f7;color:#2c637f;border:1px solid #d6e2e9;width:44px;height:44px;display:grid;place-items:center;border-radius:12px;font-size:20px}.tag{font-size:10px;letter-spacing:.4px;border:1px solid #d9e3ea;border-radius:4px;padding:3px 8px;color:#5d6e7e;display:inline-block}.card-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-title h3{font-size:18px;margin:17px 0 8px}.card-title>span{color:var(--blue)}.app-card>p{font-size:12px;color:var(--muted);margin:0;min-height:68px}.card-meta{display:flex;gap:14px;color:#5d6e7e;font-size:10px;margin:16px 0}.card-bottom{display:flex;justify-content:space-between;padding-top:13px;border-top:1px solid var(--line);color:#687889;font:10px monospace}.no-results{padding:35px;text-align:center;color:var(--muted)}.guide{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:80px;padding-block:60px 65px}.guide h2{font-size:26px;line-height:1.8;letter-spacing:-.7px;margin:12px 0}.guide-intro p{color:var(--muted);font-size:12px}.steps{list-style:none;margin:0;padding:0}.steps li{display:flex;gap:20px;padding:15px 0;border-bottom:1px solid var(--line)}.steps li:first-child{padding-top:0}.steps li:last-child{border:0}.steps li>span{font:11px monospace;color:var(--blue);margin-top:8px}.steps h3{font-size:13px;margin:0 0 6px}.steps p{font-size:12px;color:var(--muted);margin:0;line-height:1.9}.source-band{background:linear-gradient(110deg,#f2f6f8,#f8fafb);border:1px solid #dce6ec;border-radius:10px;display:flex;align-items:center;justify-content:space-between;gap:25px;padding:32px 36px;margin-bottom:70px}.source-band h2{font-size:22px;margin:8px 0}.source-band p{font-size:12px;color:var(--muted);margin:0}.footer{border-top:1px solid var(--line);padding-block:30px 24px}.footer-brand{font-size:15px}.footer-brand .cloud{transform:scale(.7);width:33px;color:#52778c}.footer>p{font-size:11px;color:var(--muted);margin:12px 0 24px}.footer>div{display:flex;gap:25px;font-size:10px;color:#657281}.footer>div>span:last-child{margin-left:auto}.detail{padding-block:35px 80px}.back{font-size:12px;color:var(--muted)}.detail-heading{margin:40px 0}.detail-heading h1{font-size:42px;margin:15px 0}.detail-heading p{color:var(--muted)}.detail-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:65px}.description{white-space:pre-wrap;color:#4b5a69}.detail-section{margin-top:35px;border-top:1px solid var(--line);padding-top:22px}.detail-section h2{font-size:20px}.detail-section li{white-space:pre-wrap;color:#4b5a69;margin-bottom:10px;overflow-wrap:anywhere}.release{padding:26px;background:var(--panel);border:1px solid var(--line);border-radius:10px;align-self:start}.release h2{font-size:27px;margin:8px 0 22px}.download{width:100%}.download-note{font-size:10px;color:var(--muted);text-align:center}.release dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;font-size:12px;margin-block:25px}.release dt{color:var(--muted)}.release dd{margin:0;text-align:right;overflow-wrap:anywhere}.source-link{font-size:12px;color:var(--blue)}.release h3{font-size:11px;margin-top:25px}.checksum{display:block;word-break:break-all;color:var(--muted);font-size:10px}.not-found{min-height:55vh;padding-block:100px}.not-found h1{font-size:32px}.not-found p{color:var(--muted);margin-bottom:30px}
@media(min-width:1500px){.hero{min-height:570px}.hero h1{font-size:48px}}@media(max-width:1000px){.wrap{width:calc(100% - 48px)}.hero h1{font-size:34px}.hero-art{transform:scale(.9)}.principles>div{flex-wrap:wrap;gap:7px}.principles>div>span:last-child{width:100%;padding-left:23px}.section-heading>p{max-width:200px}.app-grid{grid-template-columns:repeat(2,1fr)}.guide{gap:40px}.detail-grid{gap:30px;grid-template-columns:minmax(0,1fr) 290px}}@media(max-width:700px){.wrap{width:calc(100% - 40px)}.header{height:85px}.brand{font-size:17px;gap:8px}.brand .cloud{transform:scale(.8);width:38px}.brand small{font-size:8px;margin-top:6px}nav{gap:16px;font-size:11px}.nav-home{display:none}.hero{grid-template-columns:1fr;padding-block:40px 25px;gap:10px}.hero h1{font-size:clamp(29px,7vw,40px);letter-spacing:-1px}.hero-copy>p{font-size:12px}.hero-art{height:300px;max-width:400px;width:100%;margin:auto;transform:scale(.95)}.hero-notes{font-size:9px;gap:12px}.principles{gap:10px;padding-block:18px}.principles>div{padding-left:10px;gap:5px}.principles>div>span:last-child{display:none}.principles strong{font-size:10px}.principle-num{font-size:9px}.catalog{padding-block:40px}.section-heading{display:block}.section-heading h2{font-size:24px}.section-heading>p{max-width:none;font-size:11px;margin-top:10px}.empty{padding:28px 15px;min-height:265px}.empty p{font-size:11px}.guide{grid-template-columns:1fr;padding-block:35px;gap:22px}.guide h2{font-size:24px}.guide-intro p br{display:none}.source-band{flex-direction:column;align-items:flex-start;padding:25px;margin-bottom:40px;gap:20px}.source-band h2{font-size:21px}.source-band p{font-size:11px}.footer>div{flex-wrap:wrap;gap:15px}.footer>div>span:last-child{margin:0;width:100%;font-size:9px}.app-grid{grid-template-columns:1fr}.filters{flex-direction:column;gap:9px}.category-label select{width:100%}.detail-heading h1{font-size:32px;overflow-wrap:anywhere}.detail-grid{grid-template-columns:1fr;gap:30px}.release{grid-row:1}.detail-heading{margin-block:25px}.not-found h1{font-size:26px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* 0.6.0: 画面幅と文字の拡大に追従し、部品自体の最小幅によるはみ出しを防ぐ。 */
:root { --muted: #566574; --radius: 16px; }
html { font-size: 100%; -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }
body { font-size: 1rem; overflow-wrap: anywhere; }
*, *::before, *::after { box-sizing: border-box; }
.wrap { width: min(var(--max), calc(100% - clamp(2rem, 7vw, 5rem))); }
img, svg { max-width: 100%; }
img { height: auto; }
.hero, .app-grid, .guide, .detail-grid { grid-template-columns: minmax(0, 1fr); }
.hero > *, .app-grid > *, .guide > *, .detail-grid > *, .release > *, .filters > * { min-width: 0; }
.header { height: auto; min-height: 6rem; gap: .75rem 1.5rem; flex-wrap: wrap; padding-block: 1rem; }
.header nav { flex-wrap: wrap; gap: .25rem 1.25rem; font-size: .875rem; }
.header nav a, .back { display: inline-flex; align-items: center; min-height: 3rem; }
.brand { min-width: 0; max-width: 100%; }
.brand small { font-size: .6875rem; }
.hero { position: relative; isolation: isolate; padding-block: 3rem; }
.hero::after { content: ''; position: absolute; z-index: -1; inset: 0 -1rem; background: radial-gradient(ellipse at 85% 40%, #eaf4f8 0, transparent 65%); pointer-events: none; }
.hero h1 { font-size: clamp(1.875rem, 4vw, 3rem); line-height: 1.6; letter-spacing: -.035em; }
.hero-copy > p { font-size: 1rem; line-height: 1.9; }
.eyebrow { font-size: .75rem; letter-spacing: .12em; }
.hero-actions { flex-wrap: wrap; }
.button { min-height: 3rem; max-width: 100%; gap: .75rem; padding: .75rem 1.25rem; border-radius: .75rem; font-size: 1rem; line-height: 1.5; touch-action: manipulation; }
.primary { box-shadow: 0 4px 12px #2c637f1a; }
.hero-notes { flex-wrap: wrap; gap: .5rem 1rem; font-size: .8125rem; }
.principles { gap: .5rem; }
.principles strong, .principles > div { font-size: .875rem; }
.principles > div { min-width: 0; }
.principles strong { white-space: normal; }
.section-heading { gap: 1rem; flex-wrap: wrap; }
.section-heading > p, .guide-intro p, .source-band p { font-size: .9375rem; }
.app-grid { gap: 1.5rem; }
.app-card { display: flex; flex-direction: column; min-width: 0; padding: 1.5rem; border-radius: var(--radius); background: white; box-shadow: 0 5px 24px #24313d06; transition: border-color .2s, box-shadow .2s; }
.app-card:hover, .app-card:focus-within { border-color: #83a8bc; box-shadow: 0 10px 30px #24313d10; }
.card-preview { flex-shrink: 0; border-radius: 15px 15px 0 0; }
.card-title { min-width: 0; }
.card-title h3 { font-size: 1.25rem; line-height: 1.5; }
.app-card > p { font-size: 1rem; min-height: 0; line-height: 1.8; margin-bottom: 1rem; }
.tag, .card-meta, .card-bottom, .result-count { font-size: .875rem; }
.card-meta, .card-bottom { flex-wrap: wrap; gap: .5rem .875rem; }
.card-meta { margin-top: auto; padding-top: .5rem; }
.card-bottom { font-family: inherit; }
.filters { padding: 1rem; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.search { min-width: 0; background: white; min-height: 3rem; }
input, select { min-width: 0; font-size: 1rem; line-height: 1.5; min-height: 3rem; }
select { max-width: 100%; background: white; }
.search input { padding-block: .5rem; }
.steps li { gap: 1rem; padding-block: 1.5rem; }
.steps li > span { display: grid; place-items: center; flex: 0 0 2.5rem; height: 2.5rem; margin: 0; border-radius: 50%; background: #edf4f7; font-size: .875rem; }
.steps li > div { min-width: 0; }
.steps h3 { font-size: 1.0625rem; }
.steps p { font-size: .9375rem; }
.source-band { border-radius: var(--radius); }
.footer > p, .footer > div, .footer > div > span:last-child { font-size: .875rem; }
.footer > div { flex-wrap: wrap; }
.back { font-size: .9375rem; }
.detail-heading h1 { font-size: clamp(1.875rem, 4vw, 2.75rem); line-height: 1.4; }
.detail-heading p { font-size: 1.0625rem; }
.detail-grid { gap: 2rem; }
.release { grid-row: 1; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.25rem; min-width: 0; width: 100%; padding: 1.5rem; border-radius: var(--radius); background: linear-gradient(120deg, #f0f6f9, #fafcfd); border-color: #cedee7; }
.release h2 { margin: .375rem 0 0; font-size: 1.75rem; }
.release dl { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); margin: 0; font-size: .875rem; gap: .75rem; }
.release dd { min-width: 0; }
.download-note { font-size: .875rem; margin: .75rem 0 0; }
.release .checksum { font-size: .875rem; overflow-wrap: anywhere; }
.release .checksum-block { grid-column: 1 / -1; }
.detail-body { min-width: 0; width: 100%; }
.detail-section h2, .markdown h2 { font-size: 1.375rem; }
.markdown { width: 100%; min-width: 0; line-height: 1.9; }
.markdown h3 { font-size: 1.1875rem; }
.markdown h4, .markdown h5, .markdown h6 { font-size: 1.0625rem; }
.markdown img { margin-block: 1.5rem; border-radius: .75rem; }
.markdown pre, .markdown table { width: 100%; max-width: 100%; min-width: 0; overflow-x: auto; font-size: .875rem; }
.markdown ul, .markdown ol { padding-left: 1.5rem; }
.detail-section { margin-top: 2.5rem; }
:where(a, input, select, summary):focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
@media (min-width: 44rem) {
  .hero { grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
  .app-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .guide { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .release { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .release-actions { grid-column: 1 / -1; }
}
@media (min-width: 64rem) {
  .app-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .release { grid-template-columns: minmax(0, .7fr) minmax(0, 1.25fr) minmax(0, 1fr); gap: 2rem; }
  .release-actions { grid-column: auto; }
}
@media (max-width: 43.99rem) {
  .header { column-gap: .75rem; }
  .header nav { gap: .25rem .875rem; }
  .header nav .nav-home { display: none; }
  .hero-art { height: 220px; transform: none; }
  .hero { padding-block: 2rem; }
  .hero-actions .button { flex: 1 1 9rem; }
  .section-heading { display: block; }
  .source-band { padding: 1.5rem; }
  .principles > div { padding-left: .5rem; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; }
}

/* 0.6.2: 外部ホームと問い合わせは小画面でも表示する。 */
.header nav .nav-home, .header nav .nav-contact { display: inline-flex; border: 0; padding: 0; gap: .375rem; }
.header nav .nav-home span, .header nav .nav-contact span { margin-left: 0; }
.catch-before { display: inline-block; }
@media (max-width: 43.99rem) {
  .header { display: grid; grid-template-columns: minmax(0, 1fr); }
  .header nav { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; column-gap: .75rem; }
  .header nav a { min-width: 0; }
  .hero h1 { font-size: clamp(1.625rem, 6.4vw, 1.875rem); }
}

/* 0.6.3: 規約は独立ページとして本文を読みやすく配置する。 */
.terms { padding-block: 1.5rem 4rem; }
.terms-heading { margin-block: 1.5rem 2rem; }
.terms-heading h1 { margin: 0 0 .75rem; font-size: clamp(1.875rem, 4vw, 2.75rem); }
.terms-heading p { color: var(--muted); font-size: .875rem; }
.terms-body > h2 { border-top: 1px solid var(--line); padding-top: 1.5rem; margin-top: 2rem; }
@media (max-width: 43.99rem) {
  .header nav { display: flex; flex-wrap: wrap; gap: .25rem 1.25rem; }
}

/* 0.6.4: スマホのメニューは48pxのボタンから展開する。 */
.menu-toggle { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; width: 3rem; height: 3rem; padding: .75rem; border: 1px solid var(--line); border-radius: .75rem; background: white; color: var(--text); cursor: pointer; touch-action: manipulation; }
.menu-toggle span { display: block; width: 20px; height: 2px; flex-shrink: 0; border-radius: 1px; background: currentColor; transition: transform .15s, opacity .15s; }
.menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
.menu-toggle:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
@media (max-width: 43.99rem) {
  .header { grid-template-columns: minmax(0, 1fr) auto; column-gap: .75rem; row-gap: .5rem; }
  .header nav { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(0, 1fr); gap: .25rem; padding-top: .5rem; border-top: 1px solid var(--line); }
  .header nav a { min-height: 3rem; padding-inline: .75rem; border-radius: .5rem; }
  .header nav .nav-home, .header nav .nav-contact { padding-inline: .75rem; }
  .header nav a:hover { background: var(--panel); }
}
