/* page-dialo 専用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{background:var(--paper);color:var(--ink);font-family:var(--serif-jp);line-height:1.9;-webkit-font-smoothing:antialiased;overflow-x:clip;position:relative;}
  .wrap{max-width:1200px;margin:0 auto;padding:0 clamp(24px,5vw,64px);}
  .lbl{font-family:var(--sans);font-size:11px;letter-spacing:.32em;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,#2f3730 0%,#242a24 50%,#191d18 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);}

  /* 空気感の道具: 短い真鍮罫・薄いゴースト英字 */
  .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;}

  /* philosophy band（非対称: 見出し左・本文は右下へ） */
  .sp-phil{position:relative;/* 左右は.wrapと同じ固定gutterに（オーナー指摘 2026-07-30: 超広幅で--gutterが224pxまで育ち、1200px制限の.wrap内で中身が752pxまで痩せて見出しが2行化） */padding:clamp(140px,19vw,280px) clamp(24px,5vw,64px) clamp(110px,15vw,200px);}
  .sp-phil .en-title{display:block;font-size:clamp(18px,2.4vw,30px);color:var(--ink-soft);margin:clamp(40px,6vw,72px) 0 clamp(20px,2.6vw,30px);}
  .sp-phil h2{position:relative;z-index:1;margin:0;font-weight:400;font-size:clamp(26px,4.2vw,52px);letter-spacing:.14em;line-height:1.8;max-width:18em;}
  .sp-phil p{max-width:none;margin:clamp(70px,10vw,150px) 0 0;font-size:15.5px;letter-spacing:.08em;line-height:2.7;color:var(--ink-soft);}

  /* summary 3 pillars（段違いに浮かべる） */
  /* .wrap のレスポンシブな左右ガターを残し、縦方向だけ指定する */
  .sp-summary{padding-bottom:clamp(140px,19vw,280px);}
  .sum-grid{max-width:1080px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);column-gap:clamp(44px,6.5vw,100px);align-items:start;}
  .sum-card{padding:0;}
  .sum-card::before{content:"";display:block;width:38px;height:1px;background:var(--brass);margin-bottom:clamp(26px,3.5vw,40px);}
  /* .sum-card の番号（01〜03）はマークアップごと削除したためCSSも撤去（オーナー指示 2026-07-29） */
  .sum-card .en-title{display:block;font-size:40px; /* 20px→40px（オーナー指示 2026-07-30・3ページ共通の型） */margin:10px 0 18px;}
  .sum-card h4{margin:0 0 22px;font-weight:400;font-size:17px;letter-spacing:.08em;line-height:1.9;}
  .sum-card p{margin:0;font-size:13.5px;line-height:2.3;color:var(--ink-soft);}/* max-width:17em はPCでもカラム幅に届かず撤廃（オーナー報告 2026-08-07。幅はグリッド側が決める） */

  /* dark statement band（全幅写真＋スクリム） */
  .sp-statement{position:relative;isolation:isolate;overflow:hidden;overflow:clip;color:var(--paper-on-dark);text-align:center;padding:clamp(140px,19vw,260px) 0;}
  .sp-statement .st-bg{position:absolute;inset:0;z-index:-1;background-size:cover;background-position:center;filter:saturate(.88) brightness(.45) contrast(1.05);}
  .sp-statement .en-title{display:block;color:rgba(237,232,223,.6);font-size:16px;letter-spacing:.2em;margin-bottom:clamp(28px,4vw,44px);}
  .sp-statement h2{margin:0 auto;max-width:18em;font-weight:400;font-size:clamp(26px,4.4vw,54px);letter-spacing:.14em;line-height:1.7;text-shadow:0 12px 44px rgba(0,0,0,.45);}
  .sp-statement p{max-width:42em; /* 30emは狭い→拡幅（オーナー指示 2026-07-28・4ページ共通） */ margin:clamp(38px,5vw,56px) auto 0;font-size:15px;line-height:2.3;color:rgba(237,232,223,.85);letter-spacing:.06em;padding:0 clamp(24px,5vw,64px);}

  /* pillar rows: 画像は画面端までブリード・文は狭い版面 */
  .ph{position:relative;background:linear-gradient(135deg,#8f9184,#6f7267 60%,#54564c);background-size:cover;background-position:center;overflow:hidden;box-shadow:0 24px 60px -30px rgba(38,36,31,.4);}
  /* 写真上の data-cap キャプションは全廃（2026-07-20 オーナー指示） */

  .sp-pillar{padding:clamp(90px,12vw,160px) 0;}
  .sp-row{
    display:grid;align-items:center;position:relative;
    grid-template-columns:minmax(0,900px) clamp(48px,7vw,120px) minmax(0,30em) minmax(var(--gutter),1fr);
  }
  .sp-row .sp-media{grid-column:1;}
  .sp-row .sp-copy{grid-column:3;}
  .sp-row.rev{grid-template-columns:minmax(var(--gutter),1fr) minmax(0,30em) clamp(48px,7vw,120px) minmax(0,900px);}
  .sp-row.rev .sp-media{grid-column:4;}
  .sp-row.rev .sp-copy{grid-column:2;}
  /* 変奏行（Sense）: テキストは中央固定、写真は左右の枠端までブリード。
     右=縦いっぱいの大判、左=低めに沈む小判で対角のリズムを作る。SP は既存のブロック積みに委ねる */
  @media (min-width:901px){
    .sp-row.cen{grid-template-columns:minmax(var(--gutter),1fr) minmax(0,30em) minmax(var(--gutter),1fr);}
    .sp-row.cen .sp-media{grid-column:1 / -1;grid-row:1;}
    .sp-row.cen .sp-copy{grid-column:2;grid-row:1;}
    .sp-row.cen .sp-media .m-lg{left:auto;right:0;width:31%;}
    .sp-row.cen .sp-media .m-sm{right:auto;left:0;width:24%;height:52%;}
  }
  /* Relation: トップのConcept型を移植（2026-07-20 オーナー指示「このレイアウトで」）
     左=重なる写真2枚（小が大の上に乗る）/ 中央=本文 / 右=縦書き見出し / 右下=写真 */
  .rel-stage{position:relative;max-width:1120px;margin:0 auto;min-height:760px;}
  .rel-stage .ph{position:absolute;}
  .rel-img-a{top:0;left:10.7%;width:26.8%;height:clamp(130px,16vw,180px);z-index:3;}
  .rel-img-b{top:130px;left:0;width:32.1%;height:400px;z-index:2;}
  .rel-img-c{top:505px;left:73.5%;right:-3%;height:210px;z-index:3;}
  .rel-copy{position:absolute;top:128px;left:39.3%;width:30%;}
  .rel-copy .en-title{display:block;font-size:clamp(20px,2.4vw,30px);margin-bottom:18px;}
  .rel-copy p{margin:0 0 24px;font-size:15px;letter-spacing:.05em;line-height:2.2;color:var(--ink-soft);}
  .rel-vhead{position:absolute;top:44px;right:13.4%;margin:0;writing-mode:vertical-rl;font-family:var(--serif-jp);font-weight:400;font-size:clamp(22px,2.5vw,34px);letter-spacing:.24em;line-height:1.9;}
  /* SP: 単調な全幅積みを避けるミニコラージュ（2026-07-20 オーナー指示）
     大判(左基準)→小さな横(右上に重なる)→縦書き見出し(右)→本文→右寄せ写真 */
  @media(max-width:900px){
    /* SP: 写真はMindと同配置（全幅の大判＋右下に46%の小判が重なる2枚構成・
       3枚目は省略）。テキストは並走ベースのまま食い込みを撤回して
       重なりを解消（2026-07-20 オーナー指摘） */
    .rel-stage{position:relative;min-height:0;display:grid;padding:0;
      grid-template-columns:minmax(0,1fr) max-content;column-gap:clamp(18px,6vw,30px);
      grid-template-areas:"media media" "copy head";}
    /* ラッパー（.rel-media）基準にすることでグリッド子のabsolute座標問題を回避 */
    .rel-media{grid-area:media;position:relative;height:320px;}
    .rel-img-b{position:relative;inset:auto;width:100%;height:250px;margin:0;}
    .rel-img-a{display:block;position:absolute;top:auto;bottom:-14px;right:0;left:auto;width:46%;height:120px;margin:0;z-index:3;}
    .rel-vhead{grid-area:head;position:relative;top:auto;right:auto;justify-self:end;align-self:start;
      margin:44px var(--gutter) 0 0;font-size:clamp(19px,5.6vw,23px);letter-spacing:.2em;}
    .rel-copy{grid-area:copy;position:relative;top:auto;left:auto;width:auto;margin:44px 0 0 var(--gutter);}
    .rel-img-c{display:none;}
  }
  .sp-row .sp-ghost{position:absolute;top:-64px;font-family:var(--serif-en);font-size:clamp(78px,11.7vw,166px);color:rgba(36,34,32,.05);line-height:1;pointer-events:none;z-index:0;}
  .sp-media{position:relative;min-height:clamp(440px,58vh,620px);}
  .sp-media .m-lg{position:absolute;inset:0;width:88%;height:100%;}
  .sp-media .m-sm{position:absolute;right:0;bottom:-28px;width:44%;height:46%;z-index:3;}
  .sp-row.rev .sp-media .m-lg{left:auto;right:0;}
  .sp-row.rev .sp-media .m-sm{right:auto;left:0;}
  .sp-copy{position:relative;z-index:2;padding:clamp(50px,7vw,100px) 0;}
  .sp-copy .en-title{display:block;font-size:clamp(22px,2.6vw,34px);margin-bottom:10px;}
  .sp-copy h3{margin:0 0 clamp(24px,3.4vw,38px);font-weight:400;font-size:clamp(19px,2vw,25px);letter-spacing:.1em;line-height:1.8;}
  .sp-copy p{margin:0;max-width:28em;font-size:15px;letter-spacing:.05em;line-height:2.3;color:var(--ink-soft);}
  .sp-copy p+p{margin-top:22px;}
  .sp-row.rev .sp-ghost{right:var(--gutter);}
  .sp-row:not(.rev) .sp-ghost{left:var(--gutter);}

  /* award band (heading + full-screen sequence) */
  .sp-award{padding:clamp(120px,16vw,230px) 0;background:var(--paper-2);}
  .award-head{max-width:640px;}
  .award-head .en-title{display:block;font-size:clamp(16px,2vw,22px);color:var(--brass);margin-bottom:22px;}
  .award-head h3{margin:0 0 26px;font-weight:400;font-size:clamp(22px,3vw,36px);letter-spacing:.12em;line-height:1.6;}
  .award-head p{margin:0;font-size:15px;line-height:2.2;color:var(--ink-soft);}
  .award-cap{display:block;margin-top:26px;font-family:var(--sans);font-size:12px;letter-spacing:.1em;color:var(--stone);}
  /* award: 全画面クロスフェード・シーケンス（10枚・スクロール連動） */
  .award-seq{position:relative;height:470vh;background:#171511;} /* 10枚: 1枚あたり約47vhのスクロール量を維持 */
  .award-seq-sticky{position:sticky;top:0;height:100vh;overflow:hidden;color:var(--paper-on-dark);}
  /* 100vh cover では縦横比の混在する受賞写真が見切れるため、
     横長の帯（16:10）を中央に置き contain で全体を収める
     （2026-07-20 オーナー指示・レターボックス方式で見切れゼロ） */
  .aseq-panel{position:absolute;inset:auto;left:50%;top:50%;translate:-50% -50%;
    width:min(100%,160vh);aspect-ratio:16/10;
    opacity:0;transition:opacity .8s ease;z-index:1;}
  .aseq-panel.active{opacity:1;z-index:2;}
  .aseq-panel .ph{position:absolute;inset:0;box-shadow:none;
    background-size:contain;background-repeat:no-repeat;background-position:center;}
  .aseq-scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(15,14,11,.5),rgba(15,14,11,.12) 32%,rgba(15,14,11,.6));}
  .aseq-cap{position:absolute;left:var(--gutter);bottom:clamp(58px,9vh,110px);font-family:var(--serif-jp);font-size:clamp(22px,3vw,40px);letter-spacing:.16em;z-index:3;}
  .aseq-ui{position:absolute;left:var(--gutter);top:clamp(96px,14vh,140px);z-index:4;}
  .aseq-ui .en-title{color:rgba(237,232,223,.7);font-size:14px;}
  .aseq-ui .house{display:block;margin-top:8px;font-family:var(--serif-jp);letter-spacing:.14em;font-size:15px;color:var(--paper-on-dark);}
  .aseq-badge{position:absolute;right:var(--gutter);top:clamp(96px,14vh,140px);width:84px;height:84px;border-radius:50%;background:rgba(0,0,0,.3);border:1px solid rgba(237,232,223,.5);display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--serif-en);font-style:normal;font-size:12px;color:var(--paper-on-dark);z-index:4;}
  .aseq-badge b{font-style:normal;font-family:var(--serif-jp);font-size:14px;letter-spacing:.1em;margin-top:2px;}
  .aseq-count{position:absolute;right:var(--gutter);bottom:clamp(58px,9vh,110px);font-family:var(--serif-en);font-style:normal;font-size:clamp(28px,4.5vw,60px);color:rgba(237,232,223,.85);z-index:4;font-variant-numeric:tabular-nums;letter-spacing:.05em;}
  .aseq-count b{font-style:normal;font-weight:400;}
  /* 受賞名の明示（アワード受賞と一目でわかるように） */
  .aseq-ui .prize{display:inline-block;margin-top:12px;padding:7px 14px;border:1px solid rgba(168,152,120,.65);font-family:var(--sans);font-size:11px;letter-spacing:.16em;color:#d8c9a8;background:rgba(0,0,0,.28);}
  /* サムネイル: 現在地表示＋クリックでその写真へ */
  .aseq-thumbs{position:absolute;left:var(--gutter);bottom:clamp(24px,4vh,44px);z-index:5;display:flex;gap:10px;}
  /* SP用の進捗バー（PCではサムネがあるため非表示） */
  .aseq-bar{display:none;position:absolute;left:14px;right:14px;bottom:22px;height:1px;background:rgba(237,232,223,.25);z-index:5;overflow:hidden;}
  .aseq-bar i{display:block;height:100%;width:0;background:var(--brass);transition:width .45s cubic-bezier(.22,1,.36,1);}
  .aseq-thumb{width:clamp(44px,4.6vw,64px);aspect-ratio:4/3;padding:0;border:0;background-size:cover;background-position:center;cursor:pointer;opacity:.45;filter:grayscale(.3);transition:opacity .35s,filter .35s;position:relative;}
  .aseq-thumb::after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--paper-on-dark);transform:scaleX(0);transform-origin:left;transition:transform .35s;}
  .aseq-thumb.active{opacity:1;filter:none;}
  .aseq-thumb.active::after{transform:scaleX(1);}
  .aseq-thumb:focus-visible{outline:2px solid var(--brass);outline-offset:3px;}

  /* team */
  .sp-team{padding:clamp(120px,16vw,230px) 0;}
  .sp-team .head{text-align:center;margin-bottom:clamp(70px,10vw,120px);}
  .sp-team .head .en-title{display:block;font-size:clamp(20px,2.6vw,32px);margin-bottom:20px;}
  .sp-team .head p{margin:0;color:var(--ink-soft);font-size:15px;letter-spacing:.08em;}
  .team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(26px,3.4vw,48px) clamp(22px,3vw,40px);}
  .tcard .ph{aspect-ratio:4/5;margin-bottom:22px;}
  .tcard .en-title{font-size:14px;color:var(--stone);}
  .tcard h4{margin:2px 0 8px;font-weight:400;font-size:19px;letter-spacing:.1em;}
  .tcard .office{font-family:var(--sans);font-size:11.5px;letter-spacing:.06em;color:var(--stone);margin-bottom:14px;}
  .tcard p{margin:0;font-size:12.5px;line-height:2;color:var(--ink-soft);}

  /* works（トップの WORKS 帯をそのまま移植・オーナー指示 2026-07-21） */
  .sg-works{background:var(--dark);position:relative;overflow:hidden;color:var(--paper-on-dark);}
  .works-bg{position:absolute;inset:0;z-index:0;pointer-events:none;display:flex;flex-direction:column;gap:10px;}
  .works-bg .wrow{flex:1;overflow:hidden;}
  .works-bg .wrow-track{display:flex;height:100%;width:max-content;animation:works-flow 180s linear infinite;}
  .works-bg .wrow:nth-child(2) .wrow-track{animation-duration:220s;animation-direction:reverse;}
  .wbg-set{display:flex;gap:10px;padding-right:10px;height:100%;}
  .wbg-set span{flex:0 0 auto;height:100%;aspect-ratio:3/2;background-size:cover;background-position:center;filter:saturate(.85);}
  .works-bg::after{content:"";position:absolute;inset:0;background:rgba(23,21,17,.78);}
  @keyframes works-flow{to{transform:translateX(-50%);}}
  .sg-works .wrap{position:relative;z-index:2;}
  .works-cta{text-align:center;padding:clamp(30px,5vw,70px) 0;}
  .works-cta .works-head{display:inline-block;color:var(--paper-on-dark);}
  .works-head{display:block;font-style:normal;font-size:clamp(64px,12.5vw,180px);line-height:.95;letter-spacing:.01em;text-decoration:none;}
  .works-lead{margin:clamp(22px,3vw,38px) auto 0;max-width:34em;font-size:15px;line-height:2.3;letter-spacing:.08em;color:rgba(237,232,223,.85);}
  .works-btn{display:inline-flex;align-items:center;margin-top:clamp(36px,5vw,60px);padding:16px 44px;
    border:1px solid rgba(237,232,223,.5);color:var(--paper-on-dark);
    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;}
  .works-btn:hover{background:var(--paper-on-dark);color:var(--dark);border-color:var(--paper-on-dark);}
  @media (prefers-reduced-motion:reduce){.works-bg .wrow-track{animation:none;}}

  /* 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;}
    .sum-grid{grid-template-columns:1fr;row-gap:60px;}
    .sum-card{padding:0;}
    .sum-card p{max-width:none;}/* PCの17em段組み幅がスマホで幅いっぱいに届かない（オーナー報告 2026-08-07。buildingページの型に合わせる） */
    .sum-card:nth-child(2){margin-top:0;}
    .sp-phil p{margin:56px 0 0;max-width:none;}
    .ghost-en{font-size:clamp(73px,20.8vw,117px) !important;}
    .sp-row,.sp-row.rev{display:block;padding:0;}
    .sp-media{min-height:0;height:320px;margin:0;}
    .sp-media .m-lg{position:relative;inset:auto;width:100%;height:250px;}
    .sp-media .m-sm{width:46%;height:120px;bottom:-14px;}
    /* SPの単調さ対策（2026-07-20 オーナー指示）: Sense は鏡像に。
       大判を右寄せ（左に紙の余白）、小判は左下へ */
    .sp-row.cen .sp-media .m-lg{width:88%;margin-left:auto;}
    .sp-row.cen .sp-media .m-sm{right:auto;left:0;}
    /* テキスト部はトップSPのConcept型（本文左×縦書き見出し右）に
       （2026-07-20 オーナー指示） */
    .sp-copy{
      padding:44px var(--gutter) 0;
      display:grid;grid-template-columns:minmax(0,1fr) max-content;column-gap:clamp(18px,6vw,30px);
    }
    .sp-copy .en-title{grid-column:1 / -1;}
    .sp-copy h3{grid-column:2;grid-row:2 / span 8;justify-self:end;align-self:start;
      margin:0;writing-mode:vertical-rl;font-size:clamp(19px,5.6vw,23px);letter-spacing:.2em;line-height:1.9;}
    .sp-copy p{grid-column:1;max-width:none;}
    /* 並走ベースは維持しつつ行ごとにアレンジ（2026-07-20 オーナー指示）:
       Sense は鏡像 — 縦書き見出しを左・本文を右に */
    .sp-row.cen .sp-copy{grid-template-columns:max-content minmax(0,1fr);}
    .sp-row.cen .sp-copy h3{grid-column:1;grid-row:2 / span 8;justify-self:start;}
    .sp-row.cen .sp-copy p{grid-column:2;}
    .team-grid{grid-template-columns:repeat(2,1fr);gap:30px 20px;}
    .aseq-ui{top:80px;}
    .aseq-cap{bottom:120px;font-size:24px;}
    .aseq-count{bottom:120px;font-size:26px;}
    .aseq-badge{width:62px;height:62px;top:80px;font-size:10px;}
    .aseq-badge b{font-size:12px;}
    /* レターボックス化で帯の下に余白ができたため、SPサムネを
       タップできる大きさで復活（横スクロール式・アクティブ自動追従）。
       進捗バーは併存（2026-07-20 オーナー指示） */
    .aseq-thumbs{left:14px;right:14px;bottom:36px;gap:8px;display:flex;
      overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px;}
    .aseq-thumbs::-webkit-scrollbar{display:none;}
    .aseq-thumb{flex:0 0 76px;width:76px;aspect-ratio:3/2;height:auto;}
    .aseq-bar{display:block;bottom:22px;}
    .aseq-ui .prize{font-size:9.5px;letter-spacing:.1em;padding:6px 10px;}
  }

  /* ---------- 表示アニメーション（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;}}
    /* 画像リビール本家構造。※このページのみ position:relative を掛けない —
       .sp-media の .m-lg/.m-sm は position:absolute のレイヤーで、relative 化すると重ね構図が崩れる。
       枠の positioning は各クラス（.ph=relative / .m-lg,.m-sm=absolute）に任せる */
    html.m-on .m-group .m-reveal-img{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);
    }
    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;}}
  }

/* --- スマホ視差（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%;}}
