/* archive-works 専用CSS（旧: テンプレート<head>のインライン<style>・2026-07-30に外部化） */
  html,body{margin:0;padding:0;}
  :root{
    --paper:#ffffff; --paper-2:#F5F4F1; --ink:#242220; --ink-soft:#514d47;
    --stone:#8f8b82; --line:#E7E4DE; --dark:#26241F; --dark-2:#1E1C18;
    --brass:#A89878; --paper-on-dark:#EDE8DF;
    --serif-jp:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; /* フォント統一（オーナー指示 2026-07-28） */
    --serif-en:"Cormorant Garamond","Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif;
    --sans:"Cormorant Garamond","Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; /* 旧: システムゴシック。フォント統一（オーナー指示 2026-07-28） */
    --gutter:max(clamp(24px,5vw,64px),calc((100vw - 1472px)/2)); /* 大画面ではガターが伸び、コンテンツを中央1472px枠に整列（画像ブリードは全幅維持） */
  }
  *{box-sizing:border-box;}
  .sg{
    color:var(--ink);font-family:var(--serif-jp);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:clip;position:relative;
    /* 空気の光: テクスチャではなく、右上から差す極薄の暖色ウォッシュ（固定光源） */
    background:
      radial-gradient(1100px 720px at 88% -4%, rgba(224,216,201,.42), transparent 64%),
      radial-gradient(900px 680px at -6% 34%, rgba(231,229,224,.32), transparent 62%),
      var(--paper);
    background-attachment:fixed,fixed,scroll;
  }
  .wrap{max-width:1200px;margin:0 auto;padding:0 clamp(24px,5vw,64px);}
  .lbl{font-family:var(--sans);font-size:10px;letter-spacing:.42em;text-transform:uppercase;color:var(--stone);font-weight:500;}
  .en-title{font-family:var(--serif-en);font-style:normal;font-weight:400;color:var(--ink);letter-spacing:.01em;}
  .note{background:#1b1a16;color:#cfc8ba;font-family:var(--sans);font-size:12px;letter-spacing:.06em;line-height:1.7;padding:14px 20px;text-align:center;}

  .sg-header{position:absolute;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:34px var(--gutter);}
  .sg-logo{display:flex;align-items:center;gap:18px;color:var(--paper-on-dark);text-decoration:none;}
  .sg-logo .mark{width:34px;height:34px;border:1px solid rgba(237,232,223,.6);border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--serif-en);font-size:15px;font-style:normal;}
  .sg-logo .jp{font-family:var(--serif-jp);font-size:19px;letter-spacing:.14em;line-height:1;}
  .sg-logo .en{font-family:var(--sans);font-size:9.5px;letter-spacing:.34em;color:rgba(237,232,223,.7);margin-top:5px;text-transform:uppercase;}
  .sg-nav{display:flex;align-items:center;gap:34px;}
  .sg-nav a{font-family:var(--serif-en);font-size:15px;color:rgba(237,232,223,.82);text-decoration:none;letter-spacing:.02em;transition:opacity .3s;}
  .sg-nav a:hover{opacity:.6;}
  .sg-nav a.is-current{border-bottom:1px solid rgba(237,232,223,.5);padding-bottom:3px;}
  .sg-pill{font-family:var(--serif-en);font-size:14px;color:var(--paper-on-dark);border:1px solid rgba(237,232,223,.45);border-radius:40px;padding:11px 26px;display:inline-flex;align-items:center;gap:10px;text-decoration:none;transition:background .35s,color .35s;}
  .sg-pill:hover{background:var(--paper-on-dark);color:var(--dark);}

  /* 下層ヒーロー（型: 短いダーク帯＋縦書き見出し＋リード左下） */
  .pg-hero{
    position:relative;isolation:isolate;min-height:74vh;overflow:hidden;overflow:clip;/* hiddenのままだとview()の基準を奪う */
    display:flex;flex-direction:column;justify-content:flex-end;
    padding:0 var(--gutter) clamp(44px,6vh,72px);
    background:linear-gradient(120deg,#3a4239 0%,#2c322c 45%,#20241e 100%);
    color:var(--paper-on-dark);
  }
  .pg-hero-bg{position:absolute;inset:0;z-index:-1;}
  .pg-hero-bg .ph-img{position:absolute;inset:0;background-size:cover;background-position:center;filter:saturate(.95) brightness(.92) contrast(1.03);}
  .pg-hero-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,19,16,.55) 0%,rgba(20,19,16,.18) 40%,rgba(20,19,16,.62) 100%);}
  .pg-vert{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);z-index:3;display:flex;flex-direction:row-reverse;gap:clamp(14px,2vw,26px);}
  .pg-vert span{writing-mode:vertical-rl;font-size:clamp(22px,2.5vw,36px);letter-spacing:.22em;line-height:1.9;text-shadow:0 22px 54px rgba(0,0,0,.52);display:block;}
  .pg-lead{max-width:28em;margin:0;font-size:clamp(13.5px,1.2vw,16px);letter-spacing:.1em;color:rgba(237,232,223,.85);}
  .pg-en{font-family:var(--serif-en);font-style:normal;font-size:clamp(15px,1.6vw,20px);letter-spacing:.12em;color:rgba(237,232,223,.66);}

  .sec{padding:clamp(140px,19vw,280px) 0;}
  /* 空気感の道具: 短い真鍮罫・薄いゴースト英字 */
  .rule{display:block;width:46px;height:1px;background:var(--brass);margin-bottom:clamp(28px,4vw,48px);}
  .ghost-en{position:absolute;z-index:0;font-family:var(--serif-en);font-style:normal;line-height:.8;color:rgba(36,34,32,.045);pointer-events:none;white-space:nowrap;user-select:none;}
  /* 白場に浮かぶ縦書きの一句 */
  .vnote{position:absolute;writing-mode:vertical-rl;font-size:12.5px;letter-spacing:.36em;color:var(--stone);line-height:1;z-index:2;pointer-events:none;}

  /* 章題（一覧の頭・非対称） */
  .wk-head{position:relative;margin-bottom:clamp(90px,13vw,180px);}
  .wk-head .lbl{display:block;}
  .wk-head .en-title{display:block;font-size:clamp(18px,2.2vw,26px);color:var(--ink-soft);margin-top:clamp(36px,5vw,60px);}
  .wk-head h2{margin:clamp(20px,2.6vw,30px) 0 0;font-weight:400;font-size:clamp(26px,3.8vw,48px);letter-spacing:.16em;}

  /* フィーチャー1邸: 全幅画像帯 */
  .feat{display:block;position:relative;overflow:hidden;color:var(--paper-on-dark);text-decoration:none;}
  .feat .ph{position:relative;height:clamp(460px,88vh,860px);background-size:cover;background-position:center;filter:saturate(.86) contrast(1.02);}
  .feat .scrim{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,transparent 48%,rgba(15,14,11,.58));pointer-events:none;}
  .feat .ov{position:absolute;left:var(--gutter);bottom:clamp(36px,6vh,68px);z-index:3;}
  .feat .ov .idx{font-family:var(--serif-en);font-style:normal;font-size:14px;letter-spacing:.16em;color:rgba(237,232,223,.75);}
  .feat .ov .cat{display:block;margin:10px 0 6px;font-family:var(--serif-en);font-style:normal;font-size:14px;color:var(--brass);letter-spacing:.14em;}
  .feat .ov h3{margin:0;font-weight:400;font-size:clamp(26px,3.6vw,46px);letter-spacing:.14em;line-height:1.5;text-shadow:0 12px 40px rgba(0,0,0,.5);}
  /* 地名表記(.place / .en-sub)は削除したためCSSも撤去（2026-07-30） */
  .feat .more{position:absolute;right:var(--gutter);bottom:clamp(36px,6vh,68px);z-index:3;font-family:var(--serif-en);font-style:normal;font-size:15px;color:var(--paper-on-dark);border-bottom:1px solid rgba(237,232,223,.5);padding-bottom:8px;}
  .feat:hover .ph{opacity:.92;}

  /* 一覧: 左右で高さをずらした2カラム・行間を大きく・サイズにも変化 */
  .wk-list{padding:clamp(140px,19vw,280px) 0 0;}
  .wk-grid{display:grid;grid-template-columns:1fr 1fr;column-gap:clamp(60px,9vw,150px);}
  .wk-col{display:flex;flex-direction:column;gap:clamp(130px,17vw,240px);}
  .wk-col.r{margin-top:clamp(180px,24vw,340px);}
  .wk{text-decoration:none;color:var(--ink);display:block;}
  .wk .ph{position:relative;background:linear-gradient(135deg,#8f9184,#54564c);background-size:cover;background-position:center;box-shadow:0 22px 55px -30px rgba(38,36,31,.45);transition:opacity .4s;filter:saturate(.86) contrast(1.02);}
  .wk-col.l .wk .ph{aspect-ratio:4/3;}
  .wk-col.r .wk .ph{aspect-ratio:3/2;width:84%;margin-left:auto;}
  .wk-col.r .wk .meta,.wk-col.r .wk h3{margin-left:16%;}
  .wk-col.l .wk:nth-child(even) .ph{width:88%;}
  .wk:hover .ph{opacity:.88;}
  .wk .meta{display:flex;align-items:baseline;gap:16px;margin-top:clamp(22px,3vw,32px);}
  .wk .idx{font-family:var(--serif-en);font-style:normal;font-size:13px;letter-spacing:.14em;color:var(--stone);}
  .wk .cat{font-family:var(--serif-en);font-style:normal;font-size:13px;color:var(--brass);letter-spacing:.14em;}
  .wk h3{margin:10px 0 0;font-weight:400;font-size:clamp(19px,2vw,26px);letter-spacing:.14em;line-height:1.6;}

  /* 締め: 全幅引用帯 */
  /* 全幅引用帯（.bleed）はマークアップごと削除したためCSSも撤去（2026-07-29） */

  /* contact CTA */
  /* contact CTA — 非対称レイアウト（大英字＋縦書き和文＋ブラス罫線）で全ページ統一（オーナー指示 2026-07-21） */
  .sg-contact{padding:clamp(120px,17vw,220px) 0;}
  .sg-contact .c-inner{display:flex;flex-direction:row-reverse;align-items:center;justify-content:center;gap:clamp(44px,7vw,120px);max-width:1080px;margin:0 auto;padding:0 clamp(24px,5vw,64px);}
  .sg-contact .c-lead{display:flex;flex-direction:column;align-items:flex-start;}
  .sg-contact .c-title{display:block;font-size:clamp(64px,11vw,150px);letter-spacing:.02em;line-height:.92;color:var(--ink);}
  .sg-contact .c-rule{display:block;width:clamp(48px,6vw,92px);height:1px;background:var(--brass);margin:clamp(26px,3.4vw,44px) 0;transform-origin:left;}
  .sg-contact .c-vmsg{writing-mode:vertical-rl;margin:0;font-family:var(--serif-jp);font-weight:400;font-size:clamp(16px,1.7vw,20px);letter-spacing:.2em;line-height:2.5;color:var(--ink-soft);}
  .sg-contact .contact-btn{display:inline-flex;align-items:center;gap:12px;padding:16px 44px;border:1px solid rgba(36,34,32,.32);color:var(--ink);font-family:var(--serif-en);font-style:normal;font-size:17px;letter-spacing:.04em;text-decoration:none;transition:background .35s,color .35s,border-color .35s;}
  .sg-contact .contact-btn .arw{font-style:normal;font-size:15px;}
  .sg-contact .contact-btn:hover{background:var(--dark);color:var(--paper-on-dark);border-color:var(--dark);}
  @media(max-width:860px){
    .sg-contact .c-inner{flex-direction:column;align-items:center;text-align:center;gap:clamp(30px,8vw,48px);}
    .sg-contact .c-lead{align-items:center;}
    .sg-contact .c-title{font-size:clamp(56px,18vw,92px);}
    .sg-contact .c-rule{margin:clamp(22px,6vw,32px) auto;}
    .sg-contact .c-vmsg{writing-mode:horizontal-tb;text-align:center;font-size:clamp(14px,4vw,17px);line-height:2.1;letter-spacing:.1em;}
  }

  /* footer */
  .sg-footer{background:var(--dark-2);color:rgba(237,232,223,.75);padding:clamp(70px,9vw,110px) 0 56px;}
  .foot-top{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;align-items:flex-start;}
  .foot-logo .jp{font-family:var(--serif-jp);font-size:23px;letter-spacing:.16em;color:var(--paper-on-dark);}
  .foot-logo .en{font-family:var(--sans);font-size:10px;letter-spacing:.34em;color:rgba(237,232,223,.55);margin-top:8px;text-transform:uppercase;}
  .foot-addr{font-size:13px;letter-spacing:.08em;line-height:2.1;color:rgba(237,232,223,.6);margin-top:16px;}
  .foot-nav{display:flex;gap:28px;flex-wrap:wrap;}
  .foot-nav a{font-family:var(--serif-en);font-size:14px;color:rgba(237,232,223,.72);text-decoration:none;}
  .foot-nav a:hover{color:var(--paper-on-dark);}
  .foot-copy{margin-top:60px;font-family:var(--sans);font-size:10.5px;letter-spacing:.22em;color:rgba(237,232,223,.4);text-transform:uppercase;}

  @media(max-width:860px){
    .sg-nav{display:none;}
    .pg-hero{min-height:70vh;}
    .feat .ph{height:clamp(340px,60vh,520px);}
    .wk-grid{grid-template-columns:1fr;}
    .wk-col{gap:clamp(70px,12vw,110px);}
    .wk-col.r{margin-top:clamp(70px,12vw,110px);}
    .wk-col.l .wk .ph,.wk-col.r .wk .ph{aspect-ratio:3/2;width:100%;margin-left:0;}
    .wk-col.r .wk .meta,.wk-col.r .wk h3{margin-left:0;}
    .wk-col.l .wk:nth-child(even) .ph{width:100%;}
    .ghost-en{font-size:clamp(73px,20.8vw,117px) !important;}
  }

  /* ---------- 表示アニメーション（shinwa.local = margin-design 移植・トップと同一体系） ---------- */
  .m-page-veil{
    position:fixed;inset:0;z-index:9400;pointer-events:none;background:#fff;
    -webkit-mask-image:linear-gradient(135deg,transparent,transparent 30%,rgba(0,0,0,.08) 34%,rgba(0,0,0,.32) 38%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.68) 42%,rgba(0,0,0,.92) 46%,#000 50%,#000);
    mask-image:linear-gradient(135deg,transparent,transparent 30%,rgba(0,0,0,.08) 34%,rgba(0,0,0,.32) 38%,rgba(0,0,0,.5) 40%,rgba(0,0,0,.68) 42%,rgba(0,0,0,.92) 46%,#000 50%,#000);
    -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
    -webkit-mask-size:220% 220%;mask-size:220% 220%;
    animation:m-page-veil-out 1.5s cubic-bezier(.645,.045,.355,1) .1s both 1;
  }
  @keyframes m-page-veil-out{
    from{opacity:1;-webkit-mask-position:100% 100%;mask-position:100% 100%;}
    82%{opacity:1;}
    to{opacity:0;-webkit-mask-position:0% 0%;mask-position:0% 0%;}
  }
  @media (prefers-reduced-motion:reduce){.m-page-veil{display:none;}}

  @media (prefers-reduced-motion:no-preference){
    html.m-on .m-group:not(.is-visible) .m-reveal,
    html.m-on .m-group:not(.is-visible) .m-reveal-h{opacity:0;}
    html.m-on .m-group.is-visible .m-reveal{animation:m-blur-in 1.6s cubic-bezier(.165,.84,.44,1) backwards;animation-delay:var(--d,0s);}
    html.m-on .m-group.is-visible .m-reveal-h{
      animation:m-blur-in 1.6s cubic-bezier(.165,.84,.44,1) backwards,
                m-ls-in 2.6s cubic-bezier(.22,.61,.36,1) backwards;
      animation-delay:var(--d,0s);
    }
    @keyframes m-blur-in{from{opacity:0;filter:blur(14px);}}
    @keyframes m-ls-in{from{letter-spacing:.24em;}}
    /* 画像リビールは「外枠固定・内側だけ動かす」本家構造に準拠（2026-07-12修正） */
    html.m-on .m-group .m-reveal-img{position:relative;background-size:0 0;overflow:hidden;}
    html.m-on .m-group .m-reveal-img::before{
      content:"";position:absolute;inset:0;
      background-image:inherit;background-size:cover;background-position:center;
      -webkit-mask-image:linear-gradient(-30deg,transparent,transparent 40%,rgba(0,0,0,.02) 42%,rgba(0,0,0,.08) 44%,rgba(0,0,0,.18) 46%,rgba(0,0,0,.32) 48%,rgba(0,0,0,.5) 50%,rgba(0,0,0,.68) 52%,rgba(0,0,0,.82) 54%,rgba(0,0,0,.92) 56%,rgba(0,0,0,.98) 58%,#000 60%,#000);
      mask-image:linear-gradient(-30deg,transparent,transparent 40%,rgba(0,0,0,.02) 42%,rgba(0,0,0,.08) 44%,rgba(0,0,0,.18) 46%,rgba(0,0,0,.32) 48%,rgba(0,0,0,.5) 50%,rgba(0,0,0,.68) 52%,rgba(0,0,0,.82) 54%,rgba(0,0,0,.92) 56%,rgba(0,0,0,.98) 58%,#000 60%,#000);
      -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
      -webkit-mask-size:100% max(300%,100vh);mask-size:100% max(300%,100vh);
      -webkit-mask-position:center 0;mask-position:center 0;
      will-change:mask-position,transform;transform:translateZ(0);
    }
    /* 視差: data-plx の内層は上下に少し余らせ、JSの --py でゆっくり動く（mask/scale とは独立プロパティ） */
    html.m-on .m-group [data-plx].m-reveal-img::before{top:-9%;bottom:-9%;translate:0 var(--py,0);}
    html.m-on .m-group:not(.is-visible) .m-reveal-img::before{-webkit-mask-position:center 100%;mask-position:center 100%;scale:1.075;}
    html.m-on .m-group.is-visible .m-reveal-img::before{
      animation:m-img-wipe 1.4s linear backwards,m-img-settle 1.4s cubic-bezier(.165,.84,.44,1) backwards;
      animation-delay:var(--d,0s);
    }
    @keyframes m-img-wipe{from{-webkit-mask-position:center 100%;mask-position:center 100%;}}
    @keyframes m-img-settle{from{scale:1.075;}}
  }

  /* pagination（デザイントークン準拠で追記）
     サイズはブログ（margin.css の .c-pagination-list 統一版）と同一
     （小さすぎたためデザイン統一で拡大・オーナー指示 2026-07-28） */
  /* 四角枠のボタン型（オーナー指示 2026-07-29・ブログ側 .c-pagination-list と同一寸法） */
  .m-works-pager{display:flex;justify-content:center;padding:clamp(90px,12vw,160px) 0 0;}
  .m-works-pager .nav-links{display:flex;align-items:center;gap:clamp(10px,1.2vw,16px);font-family:var(--serif-en);font-size:clamp(16px,1.6vw,19px);letter-spacing:0;}
  .m-works-pager .page-numbers{
    display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
    min-width:46px;height:46px;padding:0 12px;line-height:1;
    border:1px solid #ddd8d0;color:var(--stone);text-decoration:none;
    transition:color .3s,border-color .3s,background-color .3s;
  }
  .m-works-pager a.page-numbers:hover{color:var(--ink);border-color:var(--brass);background:rgba(168,152,120,.08);}
  .m-works-pager .page-numbers.current{background:var(--ink);border-color:var(--ink);color:var(--paper);}
  .m-works-pager .page-numbers.prev,.m-works-pager .page-numbers.next{color:var(--ink-soft);}
  .m-works-pager .page-numbers.dots{border-color:transparent;min-width:22px;padding:0;color:var(--stone);}
  .m-works-pager .prev,.m-works-pager .next{color:var(--ink-soft);}
  .m-works-pager .screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap;}
  /* 0件表示 */
  .wk-empty{font-family:var(--sans);font-size:14px;letter-spacing:.14em;color:var(--stone);text-align:center;}

/* --- スマホ視差（CSS scroll-driven・2026-08-07） ----------------------
   PCの sg-scrollfx（JSが--pyを書き込む）はタッチ端末では起動しないため
   （コンポジタ先行スクロールでJS駆動は原理的にカクつく）、リビール画像の
   内層をスクロール連動アニメーションで縦に流す。
   ・wipe/settle（リビール）と drift（視差）は同じ animation プロパティに
     同居させる（別ルールに分けるとカスケードで片方が消える）
   ・drift の duration は auto 必須（省略は 0s 扱いでタイムラインに乗らない）
   ・overflow:hidden はスクロールコンテナ扱いになり view() の基準を奪うため
     対応環境では clip に切り替える（見た目同一） */
@supports (animation-timeline: view()) {
  @media (pointer: coarse) {
    html.m-on .m-group .m-reveal-img{overflow:hidden;overflow:clip;}
    html.m-on .m-group .m-reveal-img::before{top:-14%;bottom:-14%;}
    html.m-on .m-group.is-visible .m-reveal-img::before{
      animation:m-img-wipe 1.4s linear backwards,m-img-settle 1.4s cubic-bezier(.165,.84,.44,1) backwards,sg-mplx-drift auto linear both;
      animation-delay:var(--d,0s),var(--d,0s),0s;
      animation-timeline:auto,auto,view();
    }
  }
}
@keyframes sg-mplx-drift{from{translate:0 6%;}to{translate:0 -6%;}}
