/* STOLOC技研 / STOLOC Lab — stoloc.jp */
:root{
  --screen:#0A0F0A;
  --phosphor:#7CFF8A;
  --screen-text:#CFE9D4;
  --screen-rule:#2C4A33;
  --ink:#111111;
  --ink-2:#333333;
  --ink-3:#555555;
  --paper:#FFFFFF;
  --paper-2:#F4F5F2;
  --rule:#D4D4D4;
  --green:#0B6B3A;
  --green-hover:#084D2A;
  --wrap:1160px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans JP",system-ui,-apple-system,"Hiragino Sans",sans-serif;line-height:1.8;font-size:16px}
img{max-width:100%;height:auto;display:block}
a{color:var(--green)}
a:hover{color:var(--green-hover)}
h1,h2,h3,p,ul,ol{margin:0}
ul,ol{padding:0;list-style:none}
:focus-visible{outline:3px solid var(--phosphor);outline-offset:2px}
.light :focus-visible{outline-color:var(--green)}

.wrap{max-width:var(--wrap);margin:0 auto;padding-left:24px;padding-right:24px}
.dot{font-family:"DotGothic16",ui-monospace,monospace;font-weight:400}
.skip{position:absolute;left:-9999px;top:0;background:var(--phosphor);color:var(--screen);padding:8px 16px;z-index:10}
.skip:focus{left:16px;top:16px}

/* カーソル */
@keyframes blink{0%,49%{opacity:1}50%,100%{opacity:0}}
.cur{display:inline-block;width:.6em;height:1em;background:currentColor;vertical-align:-.12em;animation:blink 1s steps(1) infinite}
@media (prefers-reduced-motion:reduce){.cur{animation:none}}

/* 画面セクション */
.screen{background:var(--screen);color:var(--phosphor)}
.screen a{color:var(--phosphor)}
.screen p{color:var(--screen-text)}

/* ヘッダー */
.site-header{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px 24px;padding-top:20px;padding-bottom:20px;font-size:16px}
.brand{font-size:22px;letter-spacing:.08em;text-decoration:none}
.site-nav{display:flex;flex-wrap:wrap;gap:4px 22px}
.site-nav a{text-decoration:none}
.site-nav a:hover{text-decoration:underline}
.lang{display:flex;border:1px solid var(--phosphor)}
.lang a{padding:4px 12px;text-decoration:none;min-height:32px;display:inline-flex;align-items:center}
.lang a[aria-current="page"]{background:var(--phosphor);color:var(--screen)}

/* ヒーロー */
.hero-body{padding-top:56px;padding-bottom:88px;display:flex;flex-direction:column;gap:28px}
.boot{font-size:18px;line-height:1.9;opacity:.85}
.hero-title{font-size:clamp(34px,5.4vw,64px);line-height:1.4}
.hero-sub{font-size:clamp(20px,2.4vw,28px);line-height:1.5;color:var(--phosphor) !important}
.hero-lead{font-size:18px;max-width:34em}
.actions{display:flex;flex-wrap:wrap;gap:14px}
.btn{display:inline-flex;align-items:center;min-height:48px;padding:0 24px;text-decoration:none}
.btn-solid{background:var(--phosphor);color:var(--screen) !important}
.btn-line{border:1px solid var(--phosphor)}
.status{display:flex;flex-wrap:wrap;gap:12px 40px;padding-top:24px;border-top:1px dashed var(--screen-rule);font-size:16px;color:var(--screen-text)}

/* セクション共通 */
.section{padding-top:88px;padding-bottom:88px}
.band{background:var(--paper-2);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.kicker{font-size:15px;color:var(--green)}
.screen .kicker{color:var(--phosphor)}
.h2{font-weight:900;font-size:clamp(30px,3.6vw,40px);line-height:1.3}
.head{display:flex;flex-direction:column;gap:8px;margin-bottom:28px}
.note{font-size:14px;color:var(--ink-3)}
.split{display:flex;flex-wrap:wrap;gap:40px 72px}
.split-side{flex:0 1 300px;display:flex;flex-direction:column;gap:14px}
.split-main{flex:999 1 560px;min-width:0}

/* 近況・実績の行 */
.rows{border-top:2px solid var(--ink)}
.row{display:grid;grid-template-columns:170px 1fr;gap:24px;padding:18px 0;border-bottom:1px solid var(--rule);align-items:baseline}
.row-date{font-size:15px;color:var(--ink-3)}
.row-name{font-weight:700}
.row-body{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:baseline}
@media (max-width:640px){.row{grid-template-columns:1fr;gap:4px}}

/* タグ */
.tag{font-size:13px;line-height:1;padding:6px 9px;border:1px solid var(--ink);white-space:nowrap;color:var(--ink);background:var(--paper)}
.tag.now{background:var(--ink);color:var(--paper)}
.tags{display:flex;flex-wrap:wrap;gap:6px}

/* できること */
.services{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:0 40px}
.service{padding:24px 0;border-top:2px solid var(--ink);display:flex;flex-direction:column;gap:6px}
.service h3{font-size:22px;font-weight:900;line-height:1.4}
.service p{font-size:15px;color:var(--ink-2)}
.service .tech{font-size:13px;color:var(--ink-3)}
.num{font-size:15px;color:var(--green)}
.callout{margin-top:12px;padding:16px 18px;border:1px solid var(--ink);background:var(--paper);font-size:15px}

/* 技術スタック */
.stack-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px;margin-bottom:28px}
.legend{display:flex;gap:18px;font-size:13px;color:var(--ink-2)}
.legend span{display:flex;align-items:center;gap:6px}
.stack{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:32px}
.stack h3{font-size:16px;padding-bottom:8px;border-bottom:2px solid var(--ink);margin-bottom:12px}

/* 歩み */
.history h2{font-size:clamp(26px,3.4vw,40px);line-height:1.45}
.history-list{margin-top:28px}
.history-list li{display:grid;grid-template-columns:140px 1fr;gap:24px;padding:16px 0;border-top:1px dashed var(--screen-rule);color:var(--screen-text)}
.history-list li:last-child{border-bottom:1px dashed var(--screen-rule)}
.history-list .year{color:var(--phosphor);font-size:18px}
@media (max-width:640px){.history-list li{grid-template-columns:1fr;gap:4px}}

/* プロフィール */
.profile{display:flex;flex-wrap:wrap;gap:40px 64px;align-items:center}
.profile-img{flex:1 1 380px;max-width:460px}
.profile-img img{border-radius:12px;width:100%}
.profile-text{flex:999 1 500px;min-width:0;display:flex;flex-direction:column;gap:16px}
.profile-name small{font-size:16px;font-weight:500;color:var(--ink-3);margin-left:14px;white-space:nowrap}
.call{font-size:18px}

/* 地域活動 */
.community{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:0 40px}
.community > div{padding:22px 0;border-top:2px solid var(--ink);display:flex;flex-direction:column;gap:6px}
.community h3{font-size:19px;font-weight:900;line-height:1.5}
.community p{font-size:15px;color:var(--ink-2)}
.community a{font-size:14px}

/* お問い合わせ */
.contact{display:flex;flex-wrap:wrap;gap:32px 64px;align-items:center;padding-top:88px;padding-bottom:72px}
.contact-text{flex:999 1 480px;min-width:0;display:flex;flex-direction:column;gap:14px}
.contact-text h2{font-size:40px;line-height:1.3}
.mail{flex:1 1 340px;display:flex;align-items:center;justify-content:center;min-height:76px;padding:0 24px;background:var(--phosphor);color:var(--screen) !important;text-decoration:none;font-size:clamp(18px,2.2vw,22px);text-align:center}
.mail:hover{filter:brightness(1.08)}
.site-footer{border-top:1px dashed var(--screen-rule)}
.site-footer .wrap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:24px;padding-bottom:24px;font-size:13px;color:var(--screen-text)}
.site-footer nav{display:flex;gap:20px}
