/* SAKUYA Uploader — 説明・プライバシーポリシー・利用規約の共通スタイル
   トークンはポートフォリオ本体（../index.html）と同じ値 */
:root{
  --bg:#050507;
  --fg:#f2f3f5;
  --dim:rgba(242,243,245,.72);
  --faint:rgba(242,243,245,.45);
  --line:rgba(255,255,255,.09);
  --line2:rgba(255,255,255,.2);
  --teal:#2dd4bf;
  --violet:#8b5cf6;
  --grad:linear-gradient(100deg,#2dd4bf 0%,#5eead4 24%,#818cf8 64%,#8b5cf6 100%);
  --sans:"Inter","Noto Sans JP",-apple-system,BlinkMacSystemFont,"Hiragino Sans",sans-serif;
  --serif:"Instrument Serif",Georgia,"Hiragino Mincho ProN",serif;
}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);
  line-height:1.85;letter-spacing:.01em;-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:var(--teal);text-decoration:underline;text-underline-offset:3px;overflow-wrap:anywhere}
a:hover{color:#5eead4}
::selection{background:var(--teal);color:#04070a}
.wrap{width:min(100% - 32px,780px);margin-inline:auto}

header.top{border-bottom:1px solid var(--line)}
header.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 0}
.brand{font-size:12px;letter-spacing:.22em;color:var(--fg);text-decoration:none;font-weight:600}
.brand b{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
nav.sub{display:flex;gap:16px;flex-wrap:wrap;font-size:12px;letter-spacing:.06em}
nav.sub a{color:var(--dim);text-decoration:none}
nav.sub a[aria-current="page"]{color:var(--fg);border-bottom:1px solid var(--teal)}

main{padding:48px 0 72px}
.eyebrow{font-size:11px;letter-spacing:.28em;color:var(--teal);margin:0 0 10px}
h1{font-family:var(--serif);font-weight:400;font-size:clamp(34px,7vw,54px);line-height:1.15;margin:0 0 12px;letter-spacing:0}
.meta{color:var(--faint);font-size:13px;margin:0 0 28px}
.lang{display:flex;gap:10px;flex-wrap:wrap;margin:0 0 36px}
.lang a{font-size:12px;letter-spacing:.1em;border:1px solid var(--line2);border-radius:999px;padding:6px 14px;color:var(--fg);text-decoration:none}
.lang a:hover{border-color:var(--teal)}

section.doc{border-top:1px solid var(--line);padding-top:32px;margin-top:40px}
section.doc:first-of-type{margin-top:0}
section.doc > h2.langhead{font-size:12px;letter-spacing:.28em;color:var(--faint);font-weight:500;margin:0 0 20px}
h2{font-size:clamp(19px,3.4vw,22px);line-height:1.5;margin:36px 0 10px;font-weight:700}
h3{font-size:16px;margin:26px 0 6px;font-weight:600}
p,li{color:var(--dim);font-size:15px}
p{margin:0 0 14px}
ul{padding-left:1.3em;margin:0 0 16px}
li{margin:0 0 6px}
strong{color:var(--fg);font-weight:600}
code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;background:rgba(255,255,255,.06);
  border:1px solid var(--line);border-radius:4px;padding:1px 6px;color:var(--fg);overflow-wrap:anywhere}
[lang="ja"] p,[lang="ja"] li{line-height:1.95}

.box{border:1px solid var(--line2);border-radius:8px;padding:20px 22px;margin:22px 0;background:rgba(255,255,255,.02)}
.box p:last-child,.box ul:last-child{margin-bottom:0}

table{width:100%;border-collapse:collapse;margin:8px 0 20px;font-size:14px}
th,td{text-align:left;vertical-align:top;border-bottom:1px solid var(--line);padding:10px 8px;color:var(--dim)}
th{color:var(--fg);font-weight:600;width:34%}
@media(max-width:560px){
  table,tbody,tr,th,td{display:block;width:100%}
  tr{border-bottom:1px solid var(--line);padding:8px 0}
  th,td{border:0;padding:4px 0}
}

.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:22px 0}
@media(max-width:560px){.cards{grid-template-columns:1fr}}
.cards a{display:block;border:1px solid var(--line);border-radius:6px;padding:18px 20px;text-decoration:none;color:var(--fg)}
.cards a:hover{border-color:var(--teal)}
.cards .k{display:block;font-size:10px;letter-spacing:.24em;color:var(--faint)}
.cards .v{display:block;margin-top:6px;font-size:15px}

footer.bottom{border-top:1px solid var(--line);padding:28px 0 36px;font-size:11px;letter-spacing:.14em;color:var(--faint)}
footer.bottom .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
footer.bottom a{color:var(--faint);text-decoration:none}
footer.bottom a:hover{color:var(--fg)}
footer.bottom nav{display:flex;gap:16px;flex-wrap:wrap}
