
*{box-sizing:border-box}
:root{
  --ground:#FFFFFF; --soft:#F5F5F5; --bar:#1A1A1A; --bar-ink:#FFFFFF;
  --ink:#1A1A1A; --muted:#6A6F78; --hair:#E8E8E8;
  --accent:#154BA3; --accent-2:#00ADEF; --deep:#081F53;
  --geo:"Jost","Futura","Century Gothic",system-ui,sans-serif;
  --sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,system-ui,sans-serif;
  --maxw:1180px; --measure:680px; color-scheme:light;
}
html,body{margin:0}
body{background:var(--ground);color:var(--ink);font-family:var(--sans);
  font-weight:300;font-size:var(--fs-m);line-height:1.95;font-feature-settings:"palt" 1;
  -webkit-font-smoothing:antialiased}
h1,h2,h3{margin:0;font-weight:400}
p{margin:0 0 1.15em}p:last-child{margin-bottom:0}
img{display:block;max-width:100%}
a{color:inherit}
figure{margin:0}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.narrow{max-width:820px;margin:0 auto;padding:0 24px}

/* ヘッダー（共通） */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:60;
  background:var(--bar);color:var(--bar-ink)}
.bar .wrap{display:flex;align-items:center;gap:26px;height:84px}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--geo);
  font-size:var(--fs-m);letter-spacing:.18em;font-weight:500;white-space:nowrap;text-decoration:none}
.mk{width:31px;height:28px;flex:none}
.bar nav{margin-left:auto}
.bar nav ul{display:flex;gap:2px;list-style:none;margin:0;padding:0}
.bar nav a{opacity:.6;font-size:var(--fs-s);font-weight:300;letter-spacing:.05em;
  padding:8px 12px;text-decoration:none;display:block;white-space:nowrap}
.bar nav a:hover{opacity:1}
.bar nav a[aria-current]{opacity:1;color:var(--accent-2)}

/* キャッチ（共通） */
.catch{font-size:clamp(20px,2.5vw,30px);font-weight:300;letter-spacing:.1em;
  line-height:1.7;margin-top:18px}
.catch.mid{margin:0 0 44px;text-align:center}
.catch span{display:block}

/* フッター（共通）。名乗り＋一言＋導線を左、目次を右の3列に置く */
.foot{background:var(--bar);color:var(--bar-ink);padding:88px 0 0;font-size:var(--fs-s);
  border-top:3px solid var(--accent)}
.foot .wrap{display:grid;grid-template-columns:minmax(260px,1fr) 1.5fr;gap:64px;
  align-items:start}
.foot .brand{font-size:var(--fs-m)}
.foot .fsay{margin:30px 0 0;font-size:clamp(22px,2.4vw,30px);line-height:1.5;
  color:var(--bar-ink);letter-spacing:.16em;font-weight:300}
.foot .fcta{display:inline-block;margin-top:28px;padding:13px 30px;
  border:1px solid var(--accent-2);color:var(--accent-2);text-decoration:none;
  font-size:var(--fs-s);letter-spacing:.1em;border-radius:999px;
  transition:background .25s,color .25s}
.foot .fcta:hover{background:var(--accent-2);color:#0B0E11}

.foot .fcols{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 28px}
.foot .fcol{min-width:0}
.foot .fh{font-size:var(--fs-s);letter-spacing:.24em;color:#79838E;
  padding-bottom:12px;margin-bottom:6px;border-bottom:1px solid #2A2F35}
.foot .fcol a{display:block;padding:9px 0;text-decoration:none;font-size:var(--fs-s);
  color:#D2D8DE;letter-spacing:.03em;transition:color .2s}
.foot .fcol a:hover{color:var(--accent-2)}

.foot .fbot{display:flex;flex-wrap:wrap;gap:16px 32px;align-items:baseline;
  margin-top:76px;padding:24px 24px 34px;border-top:1px solid #2A2F35}
.foot .co{font-size:var(--fs-s);letter-spacing:.04em;color:#79838E}
.foot .grp{margin-left:auto;font-size:var(--fs-s);letter-spacing:.1em;color:#79838E}
.foot .grp a{color:#AEB7C0;text-decoration:none;border-bottom:1px solid #3A4048}
.foot .grp a:hover{color:var(--accent-2)}

@media(max-width:860px){
  .foot{padding-top:64px}
  .foot .wrap{grid-template-columns:1fr;gap:48px}
  .foot .fcols{grid-template-columns:1fr 1fr;gap:34px 24px}
  .foot .fbot{margin-top:56px}
  .foot .grp{margin-left:0}
}
@media(max-width:480px){ .foot .fcols{grid-template-columns:1fr} }

@media(max-width:1080px){ .bar nav a{font-size:var(--fs-s);padding:8px 9px} }
/* ── 引き出し（900px 以下） ────────────────────────────
   横並びが入らない幅では、バーを隠して引き出しに替える。
   隠すだけにすると、スマホからサイト内を移動する手段が無くなる。 */
.menu{display:none}
.menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;
  padding:10px 4px 10px 14px;color:var(--bar-ink);font-size:var(--fs-s);letter-spacing:.08em}
.menu summary::-webkit-details-marker{display:none}
.menu summary:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
.menu .bars{position:relative;width:22px;height:2px;background:currentColor;
  display:block;transition:background .2s}
.menu .bars::before,.menu .bars::after{content:"";position:absolute;left:0;width:22px;height:2px;
  background:currentColor;transition:transform .2s}
.menu .bars::before{top:-7px}
.menu .bars::after{top:7px}
.menu[open] .bars{background:transparent}
.menu[open] .bars::before{transform:translateY(7px) rotate(45deg)}
.menu[open] .bars::after{transform:translateY(-7px) rotate(-45deg)}
.menu .drop{position:absolute;left:0;right:0;top:100%;background:var(--bar);
  border-top:1px solid #2A2F35;padding:8px 0 18px;
  max-height:calc(100vh - 70px);overflow-y:auto;-webkit-overflow-scrolling:touch}
.menu .drop ul{list-style:none;margin:0;padding:0}
.menu .drop a{display:block;padding:15px 24px;color:var(--bar-ink);text-decoration:none;
  font-size:var(--fs-m);letter-spacing:.04em;border-bottom:1px solid #22272D}
.menu .drop a[aria-current]{color:var(--accent-2)}
.menu .drop li:last-child a{border-bottom:0}

@media(max-width:900px){
  .bar nav{display:none}
  .bar .wrap{height:70px;position:relative}
  .menu{display:block;margin-left:auto}
}
@media(prefers-reduced-motion:reduce){
  .menu .bars,.menu .bars::before,.menu .bars::after{transition:none}
}

/* モック用の切替タブ（本番には無い） */
.mockbar{position:sticky;top:0;z-index:90;background:#0B0E11;color:#fff;
  padding:10px 0;border-bottom:1px solid #222}
.mockbar .wrap{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mockbar .lb{font-family:var(--geo);font-size:var(--fs-s);letter-spacing:.22em;color:#6D7883;margin-right:8px}
.mockbar button{background:none;border:1px solid #2C333B;color:#AEB7C0;border-radius:999px;
  padding:7px 17px;font-size:var(--fs-s);letter-spacing:.06em;cursor:pointer;font-family:var(--sans)}
.mockbar button[aria-current="true"]{border-color:var(--accent-2);color:var(--accent-2)}

.head{padding:96px 0 0;background:var(--soft)}
.head .inner{padding-bottom:88px}
.head h1{font-family:var(--geo);font-weight:300;font-size:clamp(30px,4.4vw,54px);letter-spacing:.02em}
.head h1:lang(ja){letter-spacing:.06em}
.head .ja{margin-top:18px;font-size:var(--fs-s);letter-spacing:.2em;color:var(--muted)}
.head .lead{margin-top:40px;max-width:32em;font-size:clamp(17px,1.7vw,19.5px);
  font-weight:200;line-height:2.15;word-break:auto-phrase}
.head .lead .s{display:block}
.sec{padding:96px 0;border-top:1px solid var(--hair)}
.sec:first-of-type{border-top:0}
.sec.soft{background:var(--soft)}
.h2{font-family:var(--geo);font-weight:300;font-size:clamp(23px,3vw,34px);letter-spacing:.01em}
.h2.ja{font-family:var(--sans);letter-spacing:.06em}
.h2jp{margin-top:12px;margin-bottom:44px;font-size:var(--fs-s);letter-spacing:.2em;color:var(--muted)}
.note{margin-top:28px;font-size:var(--fs-s);color:var(--muted);line-height:2;
  word-break:auto-phrase;max-width:44em}

/* ── 作目の索引 ───────────────────────────── */
.crops{display:grid;grid-template-columns:repeat(3,1fr);gap:40px 32px}
.crops>*{min-width:0}
.crop{display:block;text-decoration:none;color:inherit}
/* 個別ページを作らない作目。押せないことが見て分かるようにする */
.crop.noln{cursor:default;color:inherit}
.crop.noln:hover{border-color:var(--hair)}
.crop .shot{aspect-ratio:4/3;background:var(--soft);overflow:hidden;position:relative}
.crop .shot img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.crop:hover .shot img{transform:scale(1.04)}
.crop .shot.empty{display:flex;align-items:center;justify-content:center;
  border:1px dashed var(--hair);font-size:var(--fs-s);color:var(--muted);letter-spacing:.1em}
.crop .nm{margin-top:16px;font-size:var(--fs-m);letter-spacing:.06em}
.crop .meta{margin-top:9px;font-size:var(--fs-s);color:var(--muted);letter-spacing:.04em}
/* 「写真」と「0 枚」の間で折り返させない */
.crop .meta span{white-space:nowrap}
.crop .meta b{font-family:var(--geo);font-weight:400;color:var(--ink)}
.crop .st{display:inline-block;margin-top:12px;font-size:var(--fs-s);letter-spacing:.1em;
  padding:5px 13px;border-radius:999px;border:1px solid var(--hair);color:var(--muted)}
/* 目を引く順は 募集中 > 終了。トップの POC 一覧と揃える */
.crop .st.open{background:var(--accent);border-color:var(--accent);color:#fff}
.crop .st.done{border-color:var(--hair);color:var(--muted);background:none}

/* ── 写真 ─────────────────────────────────── */
.ph{margin:0}
/* 並べる写真は枠を揃える。縦横が混ざると右側に空きができ、説明文の行もずれる */
.ph img{width:100%;height:auto;background:var(--soft);display:block}
.grid2 .ph img,.grid3 .ph img{aspect-ratio:4/3;object-fit:cover}
.grid2,.grid3{align-items:start}
.grid2 .ph figcaption,.grid3 .ph figcaption{min-height:5.2em}
/* 先頭の1枚は切らない。その作目でいちばん見せたいものなので、元の比率で出す */
.lead-shot .ph img{aspect-ratio:auto;object-fit:contain;max-height:78vh}
.ph figcaption{margin-top:14px;font-size:var(--fs-s);line-height:1.95;
  word-break:auto-phrase;max-width:42em}
.ph .cond{display:block;margin-top:7px;font-size:var(--fs-s);color:var(--muted);line-height:1.9}
.ph .pid{display:inline-block;margin-top:9px;font-family:var(--geo);font-size:var(--fs-s);
  letter-spacing:.1em;color:var(--muted)}
.ph .row-l{display:inline-block;margin-top:9px;margin-left:14px;font-family:var(--geo);
  font-size:var(--fs-s);letter-spacing:.1em;color:var(--accent);text-decoration:none;
  border-bottom:1px solid transparent}
.ph .row-l:hover{border-bottom-color:var(--accent)}
.ph .noref{display:inline-block;margin-top:9px;margin-left:14px;font-size:var(--fs-s);
  letter-spacing:.06em;color:var(--muted)}

.lead-shot{margin-bottom:64px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:56px 40px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:48px 32px}
.grid2>*,.grid3>*{min-width:0}

/* 数値 */
.figs{display:grid;grid-template-columns:1fr 1fr;gap:52px 48px;margin-bottom:72px}
.figs.n1{grid-template-columns:1fr;max-width:34em;margin-left:auto;margin-right:auto}
.figs.n3{grid-template-columns:repeat(3,1fr);gap:48px 36px}
.figs>*{min-width:0}
.fg{text-align:center}
.fg .v{font-family:var(--geo);font-weight:200;font-size:clamp(40px,5.4vw,66px);
  line-height:1;font-variant-numeric:tabular-nums}
.fg .v small{font-size:.42em;font-weight:300;margin-left:.12em}
.fg .v.sm{font-size:clamp(26px,3.2vw,38px);line-height:1.3}
.fg .v.txt{font-family:var(--sans);font-weight:300;font-size:var(--fs-l);
  line-height:1.75;letter-spacing:.02em;text-align:left;max-width:22em;
  margin-left:auto;margin-right:auto;word-break:auto-phrase}
.fg .pv{display:inline-block;margin-left:10px;font-size:var(--fs-s);letter-spacing:.06em;
  color:var(--muted);border:1px solid var(--hair);border-radius:999px;padding:2px 10px;
  vertical-align:middle}
.fg .k{margin-top:14px;font-size:var(--fs-s);letter-spacing:.18em}
.fg .n{margin-top:12px;font-size:var(--fs-s);line-height:1.9;color:var(--muted);
  max-width:26em;margin-left:auto;margin-right:auto;word-break:auto-phrase;text-align:left}
.fg .i{display:inline-block;margin-top:10px;font-family:var(--geo);font-size:var(--fs-s);
  letter-spacing:.12em;color:var(--accent);text-decoration:none}

/* ── 作目以外の記録 ─────────────────────────── */
.ogrp{margin-bottom:72px}
.oh{font-size:var(--fs-m);letter-spacing:.06em;padding-bottom:12px;
  border-bottom:1px solid var(--hair)}
.onote{margin:16px 0 8px;font-size:var(--fs-s);color:var(--muted);line-height:2;
  word-break:auto-phrase;max-width:42em}
.orow{display:flex;align-items:baseline;gap:24px;padding:22px 0;
  border-bottom:1px solid var(--hair)}
.orow .ot{flex:1 1 auto;min-width:0}
.orow .ot b{display:block;font-weight:400;font-size:var(--fs-m);letter-spacing:.03em}
.orow .ot span{display:block;margin-top:7px;font-size:var(--fs-s);color:var(--muted);
  line-height:1.9;word-break:auto-phrase;max-width:46em}
.orow .ov{flex:0 0 26%;text-align:right;font-size:var(--fs-m);
  font-variant-numeric:tabular-nums;word-break:auto-phrase}
.orow .ov i{display:block;margin-top:6px;font-style:normal;
  font-size:var(--fs-s);color:var(--muted);letter-spacing:.06em}
.orow .oi{flex:none;font-family:var(--geo);font-size:var(--fs-s);letter-spacing:.1em;
  color:var(--accent);text-decoration:none}
@media(max-width:640px){
  .orow{flex-wrap:wrap;gap:10px}
  .orow .ov{flex:1 1 auto;text-align:left}
}

/* ── 写真の記録（全件） ─────────────────────── */
.filt{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:44px}
.filt button{background:none;border:1px solid var(--hair);color:var(--muted);
  border-radius:999px;padding:8px 19px;font-size:var(--fs-s);letter-spacing:.06em;
  cursor:pointer;font-family:var(--sans)}
.filt button[aria-pressed="true"]{border-color:var(--accent);color:var(--accent)}
.arch{display:grid;grid-template-columns:repeat(4,1fr);gap:44px 28px}
.arch>*{min-width:0}
.arch .ph figcaption{font-size:var(--fs-s)}
.pend{opacity:.55}
.pend .shot{position:relative}
.pend .tagp{position:absolute;left:0;top:0;background:#1A1A1A;color:#fff;
  font-size:var(--fs-s);letter-spacing:.1em;padding:5px 12px;z-index:2}
.yet{max-width:52em;line-height:2.6;margin:0}
.yi{display:inline-block;font-size:var(--fs-s);letter-spacing:.06em;
  padding:6px 16px;border:1px solid var(--hair);border-radius:999px;background:var(--ground)}

@media(max-width:900px){
  .crops{grid-template-columns:1fr 1fr}
  .arch{grid-template-columns:repeat(3,1fr)}
  .grid3{grid-template-columns:1fr 1fr}
  .sec{padding:72px 0}
}
@media(max-width:600px){
  .crops{grid-template-columns:1fr 1fr;gap:32px 20px}
  .arch{grid-template-columns:1fr 1fr;gap:34px 18px}
  .grid2,.grid3{grid-template-columns:1fr}
  .figs{grid-template-columns:1fr}
}
