/* 通常ポートフォリオ「アトリエの壁」
   3Dの街・説明パネルと同じ言葉で作る：深い色の地に真鍮の二重の枠／建物ごとの色（緑・赤茶・灰茶）／
   台紙に貼った印刷とマスキングテープ／アーチの入口／明朝の組み／夕方 → 昼 → 夜の物語。 */

*{box-sizing:border-box}
:root{
  --paper:#f6efe0;--paper2:#efe5cf;--ink:#33303a;--soft:#6c6157;--brass:#b39a6b;--brassd:#86693a;--brassl:#dcc99b;--rule:#dccdb0;
  --green:#394e44;--brown:#6e4a41;--taupe:#5b5246;--night:#1c2722;--cream:#fcf4df;
  --serif:"Hiragino Mincho ProN","Yu Mincho","YuMincho",serif;--en:Georgia,"Times New Roman",serif;
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .42 0 0 0 0 .33 0 0 0 0 .22 0 0 0 .10 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='ur%6C(%23n)'/%3E%3C/svg%3E");
  --ease:cubic-bezier(.2,.7,.2,1);
  color-scheme:light;
}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--grain),var(--paper);color:var(--ink);font:400 16px/2.05 var(--serif);word-break:auto-phrase;line-break:strict;overflow-x:clip;-webkit-font-smoothing:antialiased}
img{max-width:100%}
a{color:inherit;text-underline-offset:.32em}
a:focus-visible,summary:focus-visible,button:focus-visible{outline:3px solid #c9a35a;outline-offset:4px}
::selection{background:#e8d29a;color:#2a2530}
p{margin:0 0 1em;text-wrap:pretty}
h1,h2,h3{margin:0;font-family:var(--serif);word-break:auto-phrase}
.skip{position:fixed;left:16px;top:-120px;z-index:100;padding:14px 18px;background:var(--paper);color:var(--ink);border:2px solid var(--brass)}
.skip:focus{top:12px}
.section-wrap{width:min(1240px,calc(100% - clamp(40px,10vw,160px)));margin-inline:auto}

/* ── 共通の部品 ─────────────────────────────── */
.eyebrow{margin:0 0 18px;font:italic 400 15px/1 var(--en);letter-spacing:.34em;text-transform:uppercase;color:var(--brassd)}
h2{font-weight:600;font-size:clamp(30px,5vw,70px);line-height:1.32;letter-spacing:.06em;color:var(--ink);text-wrap:balance}
main h2::after{content:"";display:block;width:132px;height:1px;margin-top:26px;background:linear-gradient(90deg,var(--brass),transparent)}
.line-link{display:inline-flex;align-items:center;gap:10px;margin-top:10px;padding:8px 0;font:600 15px/1.6 var(--serif);letter-spacing:.1em;text-decoration:none;border-bottom:2px solid var(--brass);color:var(--brassd);transition:color .3s,gap .35s var(--ease)}
.line-link:hover{color:var(--ink);gap:16px}
.print-tape{position:absolute;top:-17px;left:50%;width:124px;height:34px;translate:-50% 0;rotate:-3deg;pointer-events:none;
  background:linear-gradient(180deg,rgba(240,226,172,.93),rgba(226,208,150,.88));box-shadow:0 2px 5px rgba(70,48,24,.2);
  clip-path:polygon(2% 0,98% 4%,100% 18%,97% 36%,100% 54%,98% 74%,100% 92%,96% 100%,3% 96%,0 78%,3% 58%,0 38%,3% 20%);z-index:3}

/* ── 上のメニュー ───────────────────────────── */
.masthead{position:fixed;inset:0 0 auto 0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px clamp(20px,4.4vw,64px);color:var(--cream);
  transition:background .45s,padding .45s var(--ease),color .45s,box-shadow .45s}
.masthead::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,transparent,rgba(179,154,107,.85),transparent);opacity:0;transition:opacity .45s}
.masthead.is-solid{padding-block:12px;background:rgba(246,239,224,.93);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:var(--ink);box-shadow:0 8px 26px rgba(51,40,28,.09)}
.masthead.is-solid::after{opacity:1}
.brand{display:flex;align-items:center;gap:13px;text-decoration:none}
.brand svg{width:26px;height:33px;color:var(--brass);flex:none}
.brand span{display:block;white-space:nowrap;font:600 19px/1.2 var(--serif);letter-spacing:.15em;text-shadow:0 1px 8px rgba(0,0,0,.25)}
.masthead.is-solid .brand span{text-shadow:none}
.brand small{display:block;white-space:nowrap;margin-top:5px;font:italic 400 11px/1 var(--en);letter-spacing:.28em;text-transform:uppercase;color:var(--brassl)}
.masthead.is-solid .brand small{color:var(--brassd)}
.masthead nav{display:flex;align-items:center;gap:clamp(14px,2.6vw,36px)}
.masthead nav a{position:relative;white-space:nowrap;padding:8px 0;text-decoration:none;font:500 14px/1 var(--serif);letter-spacing:.13em;text-shadow:0 1px 8px rgba(0,0,0,.3)}
.masthead.is-solid nav a{text-shadow:none}
.masthead nav a:not(.pill)::after{content:"";position:absolute;left:0;right:0;bottom:1px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.masthead nav a:not(.pill):hover::after{transform:scaleX(1)}
.masthead .pill{display:inline-flex;align-items:center;gap:10px;padding:13px 22px;border-radius:2px;background:var(--green);color:var(--cream);text-shadow:none;
  box-shadow:inset 0 0 0 1.5px var(--brass),inset 0 0 0 4px var(--green),inset 0 0 0 5px rgba(179,154,107,.5),0 8px 18px rgba(0,0,0,.22);transition:transform .35s var(--ease),box-shadow .35s}
.masthead .pill:hover{transform:translateY(-2px);box-shadow:inset 0 0 0 1.5px #d6bc84,inset 0 0 0 4px var(--green),inset 0 0 0 5px rgba(214,188,132,.6),0 12px 24px rgba(0,0,0,.28)}
.contact-short{display:none}

/* ── ヒーロー：夕暮れの街に、看板が吊るされている ───────── */
.hero{position:relative;min-height:max(100svh,660px);display:grid;overflow:hidden;color:var(--cream);isolation:isolate;background:#2b2430}
.hero-shade{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(21,18,24,.7) 0,rgba(21,18,24,.38) 36%,rgba(21,18,24,.04) 68%),linear-gradient(180deg,rgba(21,18,24,.42),transparent 24%,transparent 68%,rgba(21,18,24,.36))}
.hero-glow{position:absolute;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none}
.hero{--sx:clamp(20px,7vw,128px);--sw:min(590px,calc(100vw - 40px));--m:clamp(184px,26vh,262px);--bar:86px}
.hero-copy{position:relative;align-self:start;justify-self:start;margin:var(--m) 0 0 var(--sx)}
/* 壁から出る真鍮の腕木。看板は、ここから2本の鎖で吊るされている */
.hero-bracket{position:absolute;z-index:1;left:0;top:var(--bar);width:calc(var(--sx) + var(--sw) * .93);height:8px;border-radius:0 4px 4px 0;pointer-events:none;
  background:linear-gradient(180deg,#e6cf96,#b09459 46%,#614b28);box-shadow:0 6px 10px rgba(0,0,0,.42)}
.hero-bracket::before{content:"";position:absolute;right:-7px;top:-4px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f0dcaa,#a88c58 62%,#6a5230);box-shadow:0 3px 5px rgba(0,0,0,.4)}
.hero-bracket::after{content:"";position:absolute;left:0;top:126px;width:292px;height:6px;transform-origin:0 50%;rotate:-25.6deg;border-radius:3px;background:linear-gradient(180deg,#d9c186,#9a7f4b 50%,#5b4626);box-shadow:0 4px 8px rgba(0,0,0,.35)}
/* 看板は、平行に吊るされているので、水平を保ったまま弧を描いて揺れる */
@property --swing{syntax:"<angle>";inherits:true;initial-value:0deg}
.hero-sign{--L:calc(var(--m) - var(--bar));position:relative;width:var(--sw)}
.hero-sign::before,.hero-sign::after{content:"";position:absolute;top:calc(var(--L) * -1);height:var(--L);width:3px;transform-origin:50% 0;
  background:repeating-linear-gradient(180deg,var(--brass) 0 9px,transparent 9px 15px);filter:drop-shadow(0 0 3px rgba(0,0,0,.5))}
/* 揺れは、対応を確かめられたブラウザだけ（ページ冒頭の短いスクリプトが swing-ok を付ける）。ほかは、静止した看板 */
.swing-ok .hero-sign{translate:calc(var(--L) * sin(var(--swing))) calc(var(--L) * (1 - cos(var(--swing))));
  animation:swing-in 3.8s ease-in-out .3s both,sway 9s ease-in-out 4.1s infinite}
.swing-ok .hero-sign::before,.swing-ok .hero-sign::after{rotate:calc(var(--swing) * -1);
  translate:calc(var(--L) * -1 * sin(var(--swing))) calc(var(--L) * -1 * (1 - cos(var(--swing))))}
.hero-sign::before{left:16%}.hero-sign::after{right:16%}
.eyelet{position:absolute;top:-7px;z-index:2;width:15px;height:15px;border-radius:50%;background:radial-gradient(circle at 50% 50%,#1b1618 0 3px,transparent 3.5px),radial-gradient(circle at 35% 30%,#e8d3a0,#a88c58 65%,#7a6034);box-shadow:0 2px 4px rgba(0,0,0,.4)}
.eyelet-l{left:calc(16% - 6px)}.eyelet-r{right:calc(16% - 6px)}
@keyframes swing-in{
  0%{--swing:-27deg;opacity:0}
  5%{opacity:1}
  22%{--swing:15deg}
  38%{--swing:-8.6deg}
  52%{--swing:5deg}
  64%{--swing:-2.9deg}
  76%{--swing:1.6deg}
  88%{--swing:-.7deg}
  100%{--swing:0deg;opacity:1}}
@keyframes sway{0%,100%{--swing:-1.5deg}50%{--swing:1.5deg}}
.hero-plate{position:relative;padding:50px 54px 46px;border-radius:3px;color:var(--cream);background-color:var(--green);
  background-image:
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    repeating-linear-gradient(96deg,rgba(255,255,255,.04) 0 2px,transparent 2px 7px),
    radial-gradient(120% 170% at 10% -20%,rgba(255,255,255,.14),transparent 56%);
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,repeat,no-repeat;
  background-size:9px 9px,9px 9px,9px 9px,9px 9px,auto,auto;
  background-position:24px 24px,calc(100% - 24px) 24px,24px calc(100% - 24px),calc(100% - 24px) calc(100% - 24px),0 0,0 0;
  box-shadow:0 34px 80px rgba(10,8,12,.55),0 8px 22px rgba(10,8,12,.35)}
.hero-plate::before{content:"";position:absolute;inset:13px;border:2px solid var(--brass);pointer-events:none}
.hero-plate::after{content:"";position:absolute;inset:19px;border:1px solid rgba(179,154,107,.55);pointer-events:none}
.hero-label{margin:0 0 22px;font:italic 400 15px/1 var(--en);letter-spacing:.34em;text-transform:uppercase;color:var(--brassl)}
.hero h1{font-weight:600;font-size:clamp(32px,3.7vw,54px);line-height:1.42;letter-spacing:.07em;color:#fcf4df;text-shadow:0 1px 0 rgba(0,0,0,.28)}
.hero-description{margin:26px 0 0;padding-top:22px;border-top:1px solid rgba(179,154,107,.5);font:400 17px/1.8 var(--serif);letter-spacing:.1em;color:rgba(252,244,223,.88)}
.hero-link{display:inline-flex;align-items:center;gap:12px;margin:38px 0 0 6px;padding:8px 0;text-decoration:none;font:600 16px/1.6 var(--serif);letter-spacing:.14em;color:var(--cream);text-shadow:0 1px 12px rgba(0,0,0,.55);border-bottom:1px solid rgba(220,201,155,.7)}
.hero-link span{display:inline-block;animation:bob 2.4s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(-2px)}50%{transform:translateY(4px)}}
.hero::after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:27px;z-index:2;pointer-events:none;
  background:radial-gradient(circle at 17px 14px,var(--paper) 0 13.2px,transparent 13.8px) 0 0/34px 27px repeat-x,linear-gradient(var(--paper),var(--paper)) 0 14px/100% 13px no-repeat}

/* ── 道しるべ（ページ内の案内） ─────────────────── */
.page-index{position:relative;padding:70px clamp(20px,6vw,80px) 4px;text-align:center}
.page-index>span{display:block;margin-bottom:32px;font:italic 400 15px/1 var(--en);letter-spacing:.34em;text-transform:uppercase;color:var(--brassd)}
.page-index>div{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 12px;max-width:1000px;margin:auto;filter:drop-shadow(0 7px 8px rgba(70,48,24,.24))}
.page-index a{--tone:var(--green);position:relative;isolation:isolate;display:inline-flex;align-items:center;min-width:196px;padding:17px 50px 17px 28px;text-decoration:none;font:600 15px/1.2 var(--serif);letter-spacing:.14em;color:var(--cream);
  background:var(--brass);clip-path:polygon(0 0,calc(100% - 26px) 0,100% 50%,calc(100% - 26px) 100%,0 100%);rotate:var(--r,0deg);transition:transform .45s var(--ease)}
.page-index a::before{content:"";position:absolute;inset:3px;z-index:-1;background:var(--tone);clip-path:polygon(0 0,calc(100% - 24px) 0,100% 50%,calc(100% - 24px) 100%,0 100%)}
.page-index a:nth-child(1){--tone:var(--green);--r:-1.4deg}
.page-index a:nth-child(2){--tone:var(--brown);--r:.9deg}
.page-index a:nth-child(3){--tone:var(--taupe);--r:-.7deg}
.page-index a:nth-child(4){--tone:#7a5c28;--r:1.3deg}
.page-index a:hover{transform:translateY(-5px)}

/* ── 見出し（各章） ─────────────────────────── */
.section-intro{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(30px,5vw,72px);align-items:end;padding:clamp(70px,9vw,130px) 0 clamp(44px,5vw,64px)}
.section-lead{padding-left:28px;border-left:2px solid var(--brass);font-size:17px;line-height:2.05}
.section-lead p:last-child,.section-lead>*:last-child{margin-bottom:0}
.section-lead .muted{color:var(--soft);font-size:15px}
.services .section-lead{margin:0}
.services .section-intro{padding-top:clamp(56px,7vw,100px)}

/* ── 看板の板（章の見出し：街の看板と同じ） ─────── */
.collection-heading.plate{--tone:var(--green);position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:clamp(18px,3vw,36px);margin:0 0 clamp(28px,4vw,56px);padding:clamp(30px,3.6vw,46px) clamp(30px,4.6vw,64px);border-radius:3px;color:var(--cream);background-color:var(--tone);
  background-image:
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    radial-gradient(circle,#dcc99b 0 2.3px,rgba(0,0,0,.32) 2.9px,transparent 3.6px),
    repeating-linear-gradient(96deg,rgba(255,255,255,.04) 0 2px,transparent 2px 7px),
    radial-gradient(120% 170% at 10% -20%,rgba(255,255,255,.14),transparent 56%);
  background-repeat:no-repeat,no-repeat,no-repeat,no-repeat,repeat,no-repeat;
  background-size:9px 9px,9px 9px,9px 9px,9px 9px,auto,auto;
  background-position:24px 24px,calc(100% - 24px) 24px,24px calc(100% - 24px),calc(100% - 24px) calc(100% - 24px),0 0,0 0;
  box-shadow:0 26px 54px rgba(51,40,28,.3),0 6px 14px rgba(51,40,28,.18)}
.collection-heading.plate::before{content:"";position:absolute;inset:13px;border:2px solid var(--brass);pointer-events:none}
.collection-heading.plate::after{content:"";position:absolute;inset:19px;border:1px solid rgba(179,154,107,.55);pointer-events:none}
.collection-heading[data-tone="works"]{--tone:var(--green)}
.collection-heading[data-tone="process"]{--tone:var(--brown)}
.plate-no{font:italic 400 clamp(64px,7vw,96px)/1 var(--en);color:rgba(246,234,208,.2);letter-spacing:-.03em}
.plate-text{display:flex;flex-direction:column}
.plate-en{order:-1;display:block;font:italic 400 16px/1 var(--en);letter-spacing:.34em;text-transform:uppercase;color:var(--brassl)}
.collection-heading h3{margin:14px 0 0;font:600 clamp(28px,3.4vw,46px)/1.3 var(--serif);letter-spacing:.08em;color:#fcf4df;text-shadow:0 1px 0 rgba(0,0,0,.28)}

/* ── 作品：台紙に貼った印刷 ────────────────────── */
.site-collection{display:grid}
.project{position:relative}
.project-site{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:clamp(36px,6vw,100px);align-items:center;padding:clamp(40px,5.4vw,80px) 0;border-top:1px solid var(--rule)}
.project-site:first-child{border-top:0}
.project-site:nth-child(even){grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr)}
.project-site:nth-child(even) .project-image{order:2}
.project-image{--rot:-.7deg;position:relative;display:block;padding:clamp(10px,1.3vw,18px);background:#fffdf7;color:inherit;text-decoration:none;rotate:var(--rot);
  box-shadow:0 24px 44px rgba(70,48,24,.22),0 3px 8px rgba(70,48,24,.13);transition:transform .55s var(--ease),box-shadow .55s}
.project-site:nth-child(even) .project-image{--rot:.8deg}
.project-image img{display:block;width:100%;height:auto;aspect-ratio:1265/712;object-fit:cover;object-position:top;border:1px solid rgba(70,48,24,.16)}
.project-image::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .4s;background:radial-gradient(360px circle at var(--gx,50%) var(--gy,50%),rgba(255,255,255,.34),transparent 62%)}
.project-image:hover{transform:perspective(1100px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) translateY(-7px);box-shadow:0 36px 56px rgba(70,48,24,.28),0 4px 10px rgba(70,48,24,.14)}
.project-image:hover::after{opacity:1}
.image-open{position:absolute;right:-20px;bottom:-20px;z-index:4;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#2e4137;color:#f6ead0;font:300 26px/1 var(--en);
  box-shadow:inset 0 0 0 2px var(--brass),0 10px 20px rgba(0,0,0,.3);transition:transform .45s var(--ease),background .3s}
.project-image:hover .image-open{transform:rotate(45deg) scale(1.06);background:#3d5649}
.project-no{display:block;font:italic 400 clamp(46px,5vw,70px)/1 var(--en);color:var(--brass);letter-spacing:-.01em}
.project-kind{margin:12px 0 0;font:400 13px/1.9 var(--serif);letter-spacing:.2em;color:var(--soft)}
.project-kind span::before{content:"／";margin:0 .55em;color:var(--brass)}
.project h3{margin:.25em 0 .5em;font:600 clamp(26px,2.7vw,38px)/1.45 var(--serif);letter-spacing:.05em;color:var(--green);text-wrap:balance}
.project-description{font-size:16.5px;line-height:2.05;color:var(--ink)}
.project-details{margin-top:22px;border-top:1px dotted var(--brass);border-bottom:1px dotted var(--brass)}
.project-details summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px;list-style:none;cursor:pointer;font:500 15px/1.6 var(--serif);letter-spacing:.12em;color:var(--brassd)}
.project-details summary::-webkit-details-marker{display:none}
.project-details summary span{display:grid;place-items:center;flex:none;width:28px;height:28px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--brass);font:400 15px/1 var(--serif);transition:transform .45s var(--ease),background .3s}
.project-details[open] summary span{transform:rotate(45deg);background:rgba(179,154,107,.18)}
.project-details dl{margin:0;padding:2px 4px 20px}
.project-details dt{margin:14px 0 2px;font:500 13px/1.7 var(--serif);letter-spacing:.2em;color:var(--brassd)}
.project-details dd{margin:0;font-size:15.5px;line-height:1.95}
.work-public-link{display:inline-block;margin-top:22px;padding:6px 0;text-decoration:none;font:600 15px/1.6 var(--serif);letter-spacing:.1em;border-bottom:2px solid var(--brass);transition:color .3s}
.work-public-link:hover{color:var(--brassd)}
.work-public-link span{font:400 12px/1 var(--serif);color:var(--soft);letter-spacing:.08em}
details::details-content{block-size:0;overflow:clip;transition:block-size .45s var(--ease),content-visibility .45s allow-discrete}
details[open]::details-content{block-size:auto}
:root{interpolate-size:allow-keywords}

/* ── スマホ向け画像LP：壁に貼ったポスター ─────────── */
.phone-collection{margin-top:clamp(60px,8vw,120px)}
.collection-description{max-width:34em;margin:0 0 clamp(30px,4vw,48px);font-size:18px;line-height:2.1}
.phone-wall{position:relative;padding:clamp(58px,6vw,92px) clamp(20px,4.4vw,68px) clamp(46px,5vw,76px);border-radius:3px;
  background:repeating-linear-gradient(90deg,rgba(134,105,58,.05) 0 2px,transparent 2px 46px),var(--grain),linear-gradient(180deg,#e6d8bb,#dccaa4);
  box-shadow:inset 0 0 0 1px rgba(134,105,58,.28),inset 0 16px 34px rgba(70,48,24,.16)}
.phone-wall::before{content:"";position:absolute;left:0;right:0;top:28px;height:4px;background:linear-gradient(90deg,transparent 2%,var(--brass) 14%,var(--brass) 86%,transparent 98%);box-shadow:0 3px 5px rgba(70,48,24,.25)}
.phone-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(26px,4.2vw,60px);align-items:start}
.project-phone:nth-child(1){--rot:-1.5deg}
.project-phone:nth-child(2){--rot:.9deg;margin-top:38px}
.project-phone:nth-child(3){--rot:-.6deg;margin-top:14px}
.phone-display{padding:12px 12px 14px}
.phone-display img{aspect-ratio:9/15.2;object-position:top}
.phone-display::before{content:"";position:absolute;top:-9px;left:50%;z-index:5;width:18px;height:18px;translate:-50% 0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#e2806e,#9a3f31 68%,#6b2a20);box-shadow:0 5px 7px rgba(0,0,0,.35)}
.phone-display .print-tape{display:none}
.project-phone .project-no{font-size:clamp(34px,3.2vw,46px);margin-bottom:0}
.project-phone .project-copy{position:relative;margin:20px 6px 0;padding:22px 22px 24px;background:var(--paper);box-shadow:0 14px 26px rgba(70,48,24,.18);rotate:calc(var(--rot) * -.6)}
.project-phone .project-kind{margin-top:6px;font-size:12px;letter-spacing:.14em}
.project-phone h3{font-size:clamp(20px,1.8vw,24px);margin:.3em 0 .4em}
.project-phone .project-description{font-size:14.5px;line-height:1.95}
.project-phone .project-details{margin-top:14px}
.project-phone .project-details dd{font-size:14px}
.project-sample .project-kind span::before{content:none}
.project-sample .project-kind span{display:inline-block;margin-left:.4em;padding:0 11px;border:1px solid var(--brass);border-radius:999px;font-size:11.5px;letter-spacing:.08em;color:var(--brassd)}
.works-next{position:relative;display:flex;align-items:center;justify-content:space-between;gap:30px;margin-top:clamp(56px,7vw,96px);padding:34px 40px;background:#fffbf0;rotate:-.4deg;box-shadow:0 16px 30px rgba(70,48,24,.14)}
.works-next p{margin:0;font-size:17px}

/* ── できること：街の建物と同じ、アーチの入口 ────── */
.services{position:relative;margin-top:clamp(36px,4.5vw,64px);padding-bottom:clamp(64px,8vw,110px);background:linear-gradient(180deg,transparent,rgba(220,201,155,.3) 18%,rgba(220,201,155,.3) 82%,transparent)}
.service-doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,46px);padding:0 clamp(0px,1vw,20px)}
.service-row{--tone:var(--green);position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;padding:clamp(120px,12vw,168px) clamp(30px,3.6vw,56px) 44px;text-align:center;color:var(--cream);
  border-radius:999px 999px 4px 4px;background:var(--grain),repeating-linear-gradient(96deg,rgba(255,255,255,.035) 0 2px,transparent 2px 8px),var(--tone);
  box-shadow:inset 0 0 0 10px var(--tone),inset 0 0 0 12px var(--brass),inset 0 0 0 16px var(--tone),inset 0 0 0 17px rgba(179,154,107,.5),0 30px 56px rgba(51,40,28,.32),0 8px 16px rgba(51,40,28,.2)}
.service-row[data-tone="works"]{--tone:var(--green)}
.service-row[data-tone="process"]{--tone:var(--brown)}
.service-row[data-tone="third"]{--tone:#6b5330}
.service-row::after{content:"";position:absolute;inset:12px;z-index:-1;border-radius:inherit;pointer-events:none;background:radial-gradient(70% 46% at 50% 100%,rgba(255,200,120,.26),transparent 72%);opacity:.55;transition:opacity .6s}
.service-row:hover::after{opacity:1}
.service-number{position:absolute;top:clamp(54px,5.6vw,80px);left:50%;translate:-50% 0;font:italic 400 clamp(60px,6vw,88px)/1 var(--en);color:rgba(246,234,208,.24);letter-spacing:-.02em}
.service-row .eyebrow{margin-bottom:14px;color:var(--brassl)}
.service-row h3{font:600 clamp(26px,2.5vw,34px)/1.4 var(--serif);letter-spacing:.08em;color:#fcf4df;margin-bottom:22px}
.service-row h3::after{content:"";display:block;width:64px;height:1px;margin:20px auto 0;background:linear-gradient(90deg,transparent,var(--brass),transparent)}
.service-body{display:flex;flex-direction:column;align-items:center;flex:1}
.service-body p{font-size:16px;line-height:2.05;color:rgba(252,244,223,.9)}
.service-body .service-note{font-size:14.5px;line-height:1.95;color:rgba(252,244,223,.7)}
.service-row .line-link{margin-top:auto;color:var(--brassl);border-color:var(--brass)}
.service-row .line-link:hover{color:#fff}
.scope-note{position:relative;max-width:46em;margin:clamp(50px,6vw,80px) auto 0;padding:32px 40px;background:#fffbf0;rotate:.5deg;box-shadow:0 16px 30px rgba(70,48,24,.14);font-size:15.5px;line-height:2.05}

/* ── 仕事のAI活用の章 ────────────────── */
.ai-section{display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);gap:clamp(44px,7.5vw,120px);align-items:center;padding:clamp(80px,10vw,150px) 0}
/* ── 「仕事のAI活用」の画像：真鍮の枠の飾り板（フェルト）。メモ（仕事の例）をテープで留め、中心の「AI」の光の核と、光の糸でつなぐ ── */
.ai-fig{width:min(100%,520px);margin:0 auto;container:aifig/inline-size}
.ai-fig figcaption{margin-top:20px;text-align:center;font:italic 400 13px/1.4 var(--en);letter-spacing:.14em;color:var(--soft)}
/* 壁に掛けた、真鍮の枠の飾り板。紙ではないので、枠にテープは付けない */
.ai-frame{position:relative;padding:clamp(10px,2.6vw,15px);border-radius:3px;background:linear-gradient(135deg,#ecd69f 0%,#c9ad74 28%,#a78a52 52%,#dcc189 78%,#9a7d45 100%);box-shadow:inset 0 0 0 1px rgba(255,244,210,.75),inset 0 0 0 3px rgba(110,83,38,.5),0 34px 56px rgba(51,40,28,.32),0 4px 10px rgba(51,40,28,.22)}
.ai-board{position:relative;overflow:hidden;aspect-ratio:5/6;container-type:inline-size;border-radius:1px;box-shadow:0 0 0 2px rgba(60,42,16,.75)}
.ai-board::after{content:"";position:absolute;inset:0;z-index:7;pointer-events:none;box-shadow:inset 0 1.2cqw 3cqw rgba(0,0,0,.5),inset 0 -.6cqw 1.6cqw rgba(0,0,0,.25)}

.ai-board{background:
  repeating-linear-gradient(0deg,rgba(255,255,255,.025) 0 1px,transparent 1px 3px),
  repeating-linear-gradient(90deg,rgba(0,0,0,.05) 0 1px,transparent 1px 3px),
  radial-gradient(120% 90% at 50% 46%,#3b5a47 0%,#294236 52%,#17251d 100%)}
.ai-board::before{content:"";position:absolute;inset:0;background:var(--grain);opacity:.7;mix-blend-mode:soft-light;pointer-events:none}
.aib-lines{position:absolute;inset:0;width:100%;height:100%}
.aib-path{fill:none;stroke:rgba(236,222,186,.55);stroke-width:1.1;stroke-linecap:round;transition:stroke .5s,stroke-width .5s}
.aib-path.on{stroke:#f2d58a;stroke-width:2;filter:drop-shadow(0 0 5px rgba(255,214,130,.9))}
.aib-mote{fill:#ffe4a1;opacity:.35;transition:opacity .5s}
.aib-mote.on{opacity:1;filter:drop-shadow(0 0 4px #ffd27a)}
.aib-orbit{position:absolute;left:50%;top:46%;width:60%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;border:1px dashed rgba(220,201,155,.2);animation:aib-turn 80s linear infinite}
@keyframes aib-turn{to{rotate:360deg}}
.aib-halo{position:absolute;left:50%;top:46%;width:56%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:radial-gradient(circle,rgba(255,206,120,.5),rgba(255,206,120,.12) 45%,transparent 70%);animation:aib-breath 3.6s ease-in-out infinite}
.ai-board.is-hit .aib-halo{animation:aib-hit .9s ease-out}
@keyframes aib-breath{0%,100%{opacity:.55;scale:.92}50%{opacity:.95;scale:1.06}}
@keyframes aib-hit{0%{opacity:.7;scale:.9}35%{opacity:1;scale:1.25}100%{opacity:.7;scale:1}}
.aib-ripple{position:absolute;left:50%;top:46%;width:24%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;border:.5cqw solid rgba(242,213,138,.85);opacity:0;pointer-events:none}
.ai-board.is-hit .aib-ripple{animation:aib-ripple 1.3s ease-out}
@keyframes aib-ripple{0%{opacity:.9;scale:.7}100%{opacity:0;scale:3.1}}
.aib-mount{position:absolute;left:50%;top:46%;z-index:1;width:33%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;background:conic-gradient(from 200deg,#ecd69f,#b39a6b,#86693a,#d3b87e,#ecd69f);box-shadow:0 1.6cqw 3.4cqw rgba(0,0,0,.55),inset 0 0 0 .5cqw rgba(60,42,16,.55)}
.aib-mount::after{content:"";position:absolute;inset:8%;border-radius:50%;background:radial-gradient(circle,#1b2a22,#0f1713);box-shadow:inset 0 .9cqw 1.8cqw rgba(0,0,0,.75),0 0 0 .35cqw rgba(255,244,210,.35)}
.aib-core{position:absolute;left:50%;top:46%;z-index:2;width:25%;aspect-ratio:1;translate:-50% -50%}
.aib-core svg{display:block;width:100%;height:100%;overflow:visible}
.aib-ring{transform-box:fill-box;transform-origin:center;animation:aib-turn 16s linear infinite}
.aib-ring.rev{animation-duration:11s;animation-direction:reverse}
.aib-card{position:absolute;left:var(--x);top:var(--y);z-index:3;translate:-50% -50%;width:29%;padding:2.4cqw 2.6cqw 2.5cqw;border:0;border-radius:0;border-top:.7cqw solid var(--brass);background:#fffbf0;rotate:var(--r);text-align:left;color:var(--ink);
  box-shadow:0 1.6cqw 3.2cqw rgba(0,0,0,.4),0 .2cqw .6cqw rgba(0,0,0,.3);transition:translate .45s var(--ease),box-shadow .45s,background .45s,rotate .45s}
.aib-card::before{content:"";position:absolute;left:50%;top:-1.9cqw;width:9cqw;height:2.6cqw;translate:-50% 0;rotate:-3deg;background:linear-gradient(90deg,rgba(214,196,150,.78),rgba(226,210,168,.7))}
.aib-card:nth-of-type(odd)::before{rotate:-5deg;translate:-62% 0}
.aib-card:nth-of-type(even)::before{rotate:4deg;translate:-38% 0}
.aib-card:nth-of-type(3)::before{rotate:-2deg;translate:-50% 0}
.aib-card strong{display:block;font:600 max(3.2cqw,12.5px)/1.4 var(--serif);letter-spacing:.04em}
.aib-card span{display:block;margin-top:.3cqw;font:400 max(2.5cqw,10.5px)/1.5 var(--serif);color:var(--soft)}
.aib-card .aib-tick{position:absolute;right:1.6cqw;bottom:1.4cqw;width:3.4cqw;height:3.4cqw;border-radius:50%;background:var(--brass);color:#fffbf0;font:600 2.2cqw/3.4cqw var(--serif);font-style:normal;text-align:center;opacity:0;scale:.4;transition:opacity .4s,scale .5s var(--ease)}
.aib-card.on{translate:-50% calc(-50% - 1cqw);rotate:0deg;background:#fff3d2;box-shadow:0 0 0 .35cqw #f2d58a,0 0 5cqw rgba(255,206,120,.75),0 2.4cqw 4cqw rgba(0,0,0,.45)}
.aib-card.on .aib-tick{opacity:1;scale:1}
.js .aib-card{cursor:pointer}
.aib-card:focus-visible{outline:3px solid #f2d58a;outline-offset:3px}
.aib-plate{position:absolute;left:50%;bottom:4.4cqw;z-index:4;translate:-50% 0;width:84%;margin:0;padding:1.5cqw 4cqw;border-radius:1cqw;text-align:center;background:linear-gradient(180deg,#ecd69f,#c3a56b 55%,#a98c52);box-shadow:inset 0 0 0 .3cqw rgba(60,42,16,.6),inset 0 .3cqw .6cqw rgba(255,248,220,.75),0 1cqw 2cqw rgba(0,0,0,.5)}
.aib-plate::before,.aib-plate::after{content:"";position:absolute;top:50%;width:1.5cqw;height:1.5cqw;margin-top:-.75cqw;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f4e4b6,#7a5f2d);box-shadow:0 .2cqw .3cqw rgba(0,0,0,.5)}
.aib-plate::before{left:1.8cqw}.aib-plate::after{right:1.8cqw}
.aib-plate span{display:block;font:600 max(3.1cqw,12px)/1.6 var(--serif);letter-spacing:.06em;color:#3a280d;transition:opacity .35s}
.aib-plate.swap span{opacity:0}
/* 狭い板（スマホ・狭い画面）：文字を読める大きさにするため、メモを4枚にして1枚ずつを大きくし、板を少し縦に長くする */
@container aifig (max-width:430px){
  .ai-board{aspect-ratio:5/6.5}
  .aib-card:nth-of-type(3),.aib-card:nth-of-type(4){display:none}
  .aib-lines use:nth-of-type(3),.aib-lines use:nth-of-type(4){display:none}
  .aib-card{width:42%;padding:2.8cqw 2.6cqw 3cqw}
  .aib-card:nth-of-type(5),.aib-card:nth-of-type(6){top:72%}
  .aib-card strong{font-size:max(3.5cqw,13px)}
  .aib-card span{font-size:max(2.8cqw,11px)}
  .aib-card .aib-tick{width:max(3.6cqw,14px);height:max(3.6cqw,14px);font-size:10px;line-height:max(3.6cqw,14px)}
  .aib-plate{width:92%;padding:2cqw 4cqw}
  .aib-plate span{font-size:max(3.2cqw,12.5px);letter-spacing:.02em}
}
.motion-paused .ai-board *,.motion-paused .ai-board *::before{animation-play-state:paused}
/* 文字や大きさを、板の幅に合わせる機能（cqw）に未対応の古い環境では、画像を出さず、文章だけにする */
@supports not (width:1cqw){.ai-fig{display:none}.ai-section{grid-template-columns:1fr}}
.ai-copy h2{margin-bottom:34px}
.ai-lead{margin:0 0 24px;padding-left:24px;border-left:3px solid var(--brass);font:600 clamp(22px,2.3vw,30px)/1.75 var(--serif);letter-spacing:.06em;color:var(--green)}
.ai-examples{list-style:none;margin:28px 0;padding:0;counter-reset:ex;border-top:1px dotted var(--brass)}
.ai-examples li{counter-increment:ex;display:flex;align-items:baseline;gap:20px;padding:14px 4px;border-bottom:1px dotted var(--brass);font-size:16.5px}
.ai-examples li::before{content:counter(ex,lower-roman);flex:none;min-width:2.4em;font:italic 400 22px/1 var(--en);color:var(--brass)}

/* ── ご相談の前に：掲示板 ───────────────────── */
.questions{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:clamp(30px,6vw,90px);padding:clamp(30px,5vw,70px) 0 clamp(80px,10vw,140px);align-items:start}
.questions h2{font-size:clamp(32px,3.8vw,52px)}
.question-list{border-top:1px dotted var(--brass)}
.question-list details{border-bottom:1px dotted var(--brass)}
.question-list summary{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:24px 6px;list-style:none;cursor:pointer;font:600 clamp(17px,1.5vw,20px)/1.7 var(--serif);letter-spacing:.06em;transition:color .3s,padding .4s var(--ease)}
.question-list summary::-webkit-details-marker{display:none}
.question-list summary:hover{color:var(--brassd);padding-left:14px}
.question-list summary span{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--brass);font:400 16px/1 var(--serif);color:var(--brassd);transition:transform .45s var(--ease),background .3s}
.question-list details[open] summary span{transform:rotate(45deg);background:rgba(179,154,107,.2)}
.question-list details>p{margin:0;padding:0 6px 26px;font-size:16px;line-height:2.05;color:var(--soft)}

/* ── ご相談：夜のアトリエ ─────────────────── */
.contact-section{position:relative;isolation:isolate;overflow:hidden;padding:clamp(96px,11vw,160px) 0 clamp(84px,9vw,130px);color:var(--cream);
  background:radial-gradient(80% 90% at 14% 0,#2f4036,transparent 62%),var(--grain),#1b2621}
.contact-section::before{content:"";position:absolute;left:0;right:0;top:-1px;height:27px;z-index:2;pointer-events:none;
  background:radial-gradient(circle at 17px 0,var(--paper) 0 13.2px,transparent 13.8px) 0 0/34px 27px repeat-x,linear-gradient(var(--paper),var(--paper)) 0 0/100% 1px no-repeat}
.contact-section::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(560px circle at var(--mx,26%) var(--my,34%),rgba(255,196,112,.2),transparent 62%)}
.contact-inner{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:clamp(40px,8vw,130px);align-items:center}
.contact-section .eyebrow{color:var(--brassl)}
.contact-section h2{color:#fcf4df}
.contact-heading>p{font-size:17px;line-height:2.1;color:rgba(252,244,223,.9)}
.contact-heading h2{margin-bottom:34px}
.contact-button{display:inline-flex;align-items:center;justify-content:space-between;gap:34px;min-width:min(100%,430px);margin:14px 0 24px;padding:24px 32px;text-decoration:none;color:var(--ink);background:var(--paper);border-radius:2px;
  box-shadow:inset 0 0 0 2px var(--brass),inset 0 0 0 5px var(--paper),inset 0 0 0 6px rgba(134,105,58,.55),0 20px 44px rgba(0,0,0,.45);transition:transform .45s var(--ease),box-shadow .45s}
.contact-button:hover{transform:translateY(-4px);box-shadow:inset 0 0 0 2px #cdb27a,inset 0 0 0 5px var(--paper),inset 0 0 0 6px rgba(134,105,58,.6),0 26px 50px rgba(0,0,0,.5),0 0 46px rgba(255,196,112,.4)}
.contact-button>span:first-child{font:600 clamp(18px,1.6vw,21px)/1.5 var(--serif);letter-spacing:.08em}
.contact-button small{display:block;margin-top:5px;font:400 13px/1.6 var(--serif);letter-spacing:.1em;color:var(--soft)}
.contact-button>span[aria-hidden]{display:grid;place-items:center;flex:none;width:46px;height:46px;border-radius:50%;background:#2e4137;color:#f6ead0;font:300 24px/1 var(--en);box-shadow:inset 0 0 0 2px var(--brass);transition:transform .45s var(--ease)}
.contact-button:hover>span[aria-hidden]{transform:rotate(45deg)}
.form-note{font-size:14.5px;line-height:2;color:rgba(252,244,223,.72)}
.maker{position:relative;max-width:350px;justify-self:end}
.maker-photo{position:relative;padding:14px;background:#fffdf7;rotate:1.6deg;box-shadow:0 26px 50px rgba(0,0,0,.5),0 3px 8px rgba(0,0,0,.3)}
.maker-photo img{display:block;width:100%;height:auto;aspect-ratio:1122/1402;object-fit:cover;filter:saturate(.94)}
.seal{position:absolute;right:-16px;bottom:-18px;z-index:4;display:grid;place-items:center;width:62px;height:62px;border-radius:50%;rotate:-12deg;font:italic 600 19px/1 var(--en);letter-spacing:.02em;color:#b0463a;background:#f6e9de;border:2px solid #b0463a;box-shadow:inset 0 0 0 3px #f6e9de,inset 0 0 0 4px rgba(176,70,58,.7),0 6px 12px rgba(0,0,0,.35)}
.maker-name{margin:34px 0 8px;font:600 21px/1.6 var(--serif);letter-spacing:.1em;color:#fcf4df}
.maker-nickname{margin-left:.35em;font-weight:400;font-size:14px;color:rgba(252,244,223,.8)}
.maker-name span:last-child{display:block;margin-top:2px;font:italic 400 12px/1.4 var(--en);letter-spacing:.3em;color:var(--brassl)}
.maker>p:last-child{font-size:14.5px;line-height:2;color:rgba(252,244,223,.78)}

/* ── フッター ───────────────────────────── */
.site-footer{padding:56px clamp(20px,6vw,88px) 40px;background:#141c18;color:rgba(252,244,223,.82)}
.footer-brand{display:inline-block;text-decoration:none;font:600 21px/1.3 var(--serif);letter-spacing:.15em;color:#fcf4df}
.footer-brand small{display:block;margin-top:6px;font:italic 400 11px/1 var(--en);letter-spacing:.28em;text-transform:uppercase;color:var(--brass)}
.site-footer nav{display:flex;flex-wrap:wrap;gap:12px 30px;margin:34px 0 0;padding:26px 0;border-top:1px solid rgba(179,154,107,.3);border-bottom:1px solid rgba(179,154,107,.3)}
.site-footer nav a{text-decoration:none;font:500 14px/1.6 var(--serif);letter-spacing:.12em;transition:color .3s}
.site-footer nav a:hover{color:var(--brassl)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:24px}
.footer-bottom p{margin:0;font:400 14px/1.8 var(--serif);letter-spacing:.12em;color:rgba(252,244,223,.7)}

/* ── 出現の演出（JavaScriptがあるときだけ。なければ最初から見える） ── */
.js [data-reveal]{opacity:0;transition:opacity .9s ease,transform 1.05s var(--ease);transition-delay:var(--d,0s)}
.js [data-reveal="plate"]{transform:translateY(-30px) rotate(-1.4deg);transform-origin:50% 0;transition:opacity .6s ease,transform 1.3s cubic-bezier(.2,1.55,.35,1);transition-delay:var(--d,0s)}
.js [data-reveal="print"]{transform:translateY(46px) scale(.97)}
.js [data-reveal="text"]{transform:translateY(24px)}
.js [data-reveal="door"]{transform:translateY(50px)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal] .print-tape{opacity:0;scale:.2 1;transition:opacity .4s ease .55s,scale .6s var(--ease) .55s}
.js [data-reveal].is-in .print-tape{opacity:1;scale:1 1}

/* ── 見出しの1字ずつの現れ ── */
.js .hero h1 .ch{display:inline-block;opacity:0;animation:ch-in 1s var(--ease) calc(2.2s + var(--i) * 55ms) both}
@keyframes ch-in{from{opacity:0;transform:translateY(.42em);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
.page-index a:hover{transform:translateY(-5px) rotate(calc(var(--r,0deg) * -1))}

/* ── 街 ⇄ 通常ページの場面転換（対応するブラウザだけ。なければ普通に切り替わる） ── */
@view-transition{navigation:auto}
::view-transition-old(root){animation:vt-out .55s ease both}
::view-transition-new(root){animation:vt-in .8s var(--ease) .05s both}
@keyframes vt-out{to{opacity:0;transform:scale(1.035);filter:blur(7px)}}
@keyframes vt-in{from{opacity:0;transform:scale(.985);filter:blur(5px)}}

/* ── ヘッダー：街の模型の動画と、星 ── */
.hero-shade{background:linear-gradient(90deg,rgba(18,14,40,.3),transparent 56%),linear-gradient(180deg,rgba(18,14,40,.3),transparent 22%)}
.hero-h1{position:absolute;inset:0;z-index:-3;overflow:hidden;background:linear-gradient(180deg,#1d1a40 0%,#4d3a72 45%,#cf7a67 74%,#f3bf7b 100%)}
.hero-h1 picture,.hero-h1 img,.hero-h1 video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.hero-stars{position:absolute;inset:0;z-index:-2;width:100%;height:100%;pointer-events:none}

/* ── このページが、見本です（法人向けの入口：O3） ── */
.sample-section{position:relative;padding:clamp(54px,6vw,80px) 0 clamp(10px,2vw,30px)}
.sample-section[data-draft]::before{content:"見本・" attr(data-draft);position:absolute;right:0;top:clamp(6px,1vw,14px);padding:5px 12px;border:1px dashed var(--brass);border-radius:999px;font:500 12px/1.2 var(--serif);letter-spacing:.08em;color:var(--brassd)}
.collection-heading[data-tone="third"]{--tone:#6b5330}
.collection-heading h2{margin:14px 0 0;font:600 clamp(28px,3.4vw,46px)/1.3 var(--serif);letter-spacing:.08em;color:#fcf4df;text-shadow:0 1px 0 rgba(0,0,0,.28)}
.collection-heading h2::after{content:none}
.sample-lead{max-width:34em;margin:0 0 clamp(30px,4vw,52px)}
.sample-lead p:first-child{margin:0 0 .5em;font:600 clamp(20px,2.2vw,28px)/1.8 var(--serif);letter-spacing:.05em;color:var(--green)}
.sample-lead .muted{margin:0;font-size:16.5px;color:var(--soft)}
.bridge{display:flex;align-items:center;justify-content:center;gap:clamp(16px,3.4vw,44px);width:min(1240px,calc(100% - clamp(40px,10vw,160px)));margin:clamp(60px,8vw,110px) auto 0}
.bridge::before,.bridge::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--brass))}
.bridge::after{background:linear-gradient(90deg,var(--brass),transparent)}
.bridge p{margin:0;text-align:center;font:500 clamp(14px,1.45vw,18px)/1.9 var(--serif);letter-spacing:.14em;color:var(--brassd)}
.bridge-br{display:none}
@media (max-width:700px){.bridge-br{display:inline}.bridge p{letter-spacing:.08em}}
.sample-list{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(16px,2.4vw,32px)}
.sample-card{position:relative;padding:24px 22px 28px;background:#fffbf0;border-top:3px solid var(--brass);rotate:var(--r,0deg);box-shadow:0 16px 30px rgba(70,48,24,.14),0 2px 6px rgba(70,48,24,.1);transition:translate .5s var(--ease),box-shadow .5s}
.js .sample-card[data-reveal]{transition:opacity .9s ease var(--d,0s),transform 1.05s var(--ease) var(--d,0s),translate .5s var(--ease),box-shadow .5s}
.sample-card:nth-child(1){--r:-.8deg}.sample-card:nth-child(2){--r:.6deg}.sample-card:nth-child(3){--r:-.5deg}.sample-card:nth-child(4){--r:.9deg}
.sample-card:hover{translate:0 -6px;box-shadow:0 26px 40px rgba(70,48,24,.2),0 2px 6px rgba(70,48,24,.1)}
.sample-no{position:absolute;top:14px;right:18px;font:italic 400 32px/1 var(--en);color:rgba(179,154,107,.75)}
.sample-card h3{margin:14px 0 8px;font:600 clamp(19px,1.7vw,23px)/1.5 var(--serif);letter-spacing:.05em;color:var(--green);text-wrap:balance}
.sample-card p{margin:0;font-size:14.5px;line-height:1.95;color:var(--soft)}
.sample-fig{position:relative;display:block;height:92px;margin:0}
.fig-sign i{position:absolute;top:0;width:2px;height:36px;background:repeating-linear-gradient(180deg,var(--brass) 0 5px,transparent 5px 9px)}
.fig-sign i:nth-child(1){left:26%}.fig-sign i:nth-child(2){right:26%}
.fig-sign b{position:absolute;left:14%;right:14%;top:36px;height:46px;background:var(--green);box-shadow:inset 0 0 0 2px var(--brass),0 8px 14px rgba(51,40,28,.25);animation:fig-sway 4.2s ease-in-out infinite}
@keyframes fig-sway{0%,100%{transform:translateX(-7px)}50%{transform:translateX(7px)}}
/* 3枚目「灯りがともる街」：夕暮れの街並みに、灯りがひとつずつともり、最後に街全体が少し明るくなる（3Dの街の冒頭の演出を縮めた絵） */
.fig-lights b{position:absolute;inset:6px 14%;overflow:hidden;border-radius:3px;background:linear-gradient(180deg,#2f2b45,#5a4a62 62%,#86685a);box-shadow:inset 0 0 0 2px var(--brass),0 8px 14px rgba(51,40,28,.25)}
.fig-lights b::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 70% at 50% 100%,rgba(255,196,112,.38),transparent 72%);opacity:0;animation:fig-dawn 6s ease-in-out infinite}
.fig-lights b::after{content:"";position:absolute;left:0;right:0;bottom:0;height:46%;background:#211d2e;clip-path:polygon(0 100%,0 46%,9% 46%,9% 22%,16% 6%,23% 22%,23% 46%,34% 46%,34% 30%,43% 12%,52% 30%,52% 46%,62% 46%,62% 18%,70% 0,78% 18%,78% 46%,88% 46%,88% 28%,94% 14%,100% 28%,100% 100%)}
.fig-lights i{position:absolute;z-index:1;width:6px;height:6px;border-radius:50%;background:#ffd38a;box-shadow:0 0 9px 3px rgba(255,196,112,.75);opacity:.18;animation:6s ease-out infinite}
/* 5つとも同じ6秒の中で動く（0.6秒ずつ順にともり、最後にそろって消える）。ずらし（animation-delay）を使うと、2回目から灯りが流れる動きに崩れるため、灯りごとに時刻を書く */
.fig-lights i:nth-child(1){left:12%;bottom:12%;animation-name:fig-light-1}.fig-lights i:nth-child(2){left:30%;bottom:30%;animation-name:fig-light-2}.fig-lights i:nth-child(3){left:47%;bottom:20%;animation-name:fig-light-3}.fig-lights i:nth-child(4){left:66%;bottom:34%;animation-name:fig-light-4}.fig-lights i:nth-child(5){left:84%;bottom:14%;animation-name:fig-light-5}
@keyframes fig-light-1{0%,5%{opacity:.18}10%,88%{opacity:1}96%,100%{opacity:.18}}
@keyframes fig-light-2{0%,15%{opacity:.18}20%,88%{opacity:1}96%,100%{opacity:.18}}
@keyframes fig-light-3{0%,25%{opacity:.18}30%,88%{opacity:1}96%,100%{opacity:.18}}
@keyframes fig-light-4{0%,35%{opacity:.18}40%,88%{opacity:1}96%,100%{opacity:.18}}
@keyframes fig-light-5{0%,45%{opacity:.18}50%,88%{opacity:1}96%,100%{opacity:.18}}
@keyframes fig-dawn{0%,55%{opacity:0}68%,88%{opacity:1}100%{opacity:0}}
.fig-town b{position:absolute;left:50%;top:14px;width:120px;height:62px;translate:-50% 0;border-radius:50%;background:radial-gradient(circle at 50% 30%,#e8d4b0,#bda07a 70%);box-shadow:0 12px 14px rgba(70,48,24,.28),inset 0 -6px 0 rgba(110,74,65,.55)}
.fig-town b::before{content:"";position:absolute;left:30%;top:-24px;width:34px;height:30px;background:var(--brown);clip-path:polygon(0 100%,0 40%,50% 0,100% 40%,100% 100%);box-shadow:0 0 0 0 transparent}
.fig-town b::after{content:"";position:absolute;left:56%;top:-14px;width:28px;height:22px;background:var(--green);clip-path:polygon(0 100%,0 40%,50% 0,100% 40%,100% 100%)}
.fig-night b{position:absolute;inset:6px 14%;border-radius:3px;background:radial-gradient(60px circle at 30% 50%,rgba(255,196,112,.6),transparent 70%),#1b2621;box-shadow:inset 0 0 0 2px var(--brass);animation:fig-lantern 5s ease-in-out infinite alternate}
@keyframes fig-lantern{from{background-position:0 0,0 0}to{background-position:70px 0,0 0}}
.sample-cta{margin:clamp(32px,4vw,52px) 0 0;text-align:center}
@media (max-width:980px){.sample-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.sample-list{grid-template-columns:1fr}.sample-section[data-draft]::before{position:static;display:inline-block;margin-bottom:12px}}


/* ── ヘッダーの「動きを止める」ボタン（ページの動き：ヘッダーの動画・光の粒・星・看板の揺れ、章の小さな絵、AI活用の飾り板を止められる） ── */
.motion-toggle{position:absolute;right:clamp(20px,5vw,72px);bottom:56px;z-index:3;appearance:none;display:inline-flex;align-items:center;gap:8px;padding:9px 16px;border:0;border-radius:999px;background:rgba(28,24,40,.55);color:var(--cream);font:500 12.5px/1 var(--serif);letter-spacing:.12em;cursor:pointer;backdrop-filter:blur(6px);box-shadow:inset 0 0 0 1px rgba(220,201,155,.45);transition:background .3s}
.motion-toggle[hidden]{display:none}
.motion-toggle:hover{background:rgba(28,24,40,.78)}
.motion-paused .fig-sign b,.motion-paused .fig-night b{animation-play-state:paused}
.motion-paused .fig-lights i,.motion-paused .fig-lights b::before{animation:none;opacity:1}
.hero.is-paused .hero-sign,.hero.is-paused .hero-sign::before,.hero.is-paused .hero-sign::after,.hero.is-paused .hero-link span{animation-play-state:paused}
/* 動きのスクリプトが動かないときの、安全装置：出現の演出で隠れた内容を、見えるようにする */
.reveal-fallback [data-reveal]{opacity:1!important;transform:none!important}
.reveal-fallback [data-reveal] .print-tape{opacity:1!important;scale:1 1!important}

/* ── 動きを減らす設定 ──────────────────────── */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .js .hero h1 .ch{animation:none;opacity:1}
  .fig-sign b,.fig-night b{animation:none}
  .fig-lights i,.fig-lights b::before{animation:none;opacity:1}
  ::view-transition-old(root),::view-transition-new(root){animation:none}
  .swing-ok .hero-sign{animation:none;translate:none}.swing-ok .hero-sign::before,.swing-ok .hero-sign::after{rotate:none;translate:none}.hero-link span{animation:none}
  .js [data-reveal]{opacity:1;transform:none;transition:none}
  .js [data-reveal] .print-tape{opacity:1;scale:1 1;transition:none}
  .ai-board *,.ai-board *::before,.ai-board *::after{animation:none!important;transition:none!important}
  .project-image,.contact-button,.page-index a{transition:none}
}

/* ── 狭い画面 ───────────────────────────── */
@media (max-width:1100px){.service-doors{grid-template-columns:1fr;max-width:560px;margin:auto;padding:0}}
@media (max-width:980px){
  .section-intro{grid-template-columns:1fr;align-items:start}
  .section-lead{padding-left:22px}
  .project-site,.project-site:nth-child(even){grid-template-columns:1fr;gap:34px}
  .project-site:nth-child(even) .project-image{order:0}
  .project-image,.project-site:nth-child(even) .project-image{margin:0 14px}
  .phone-grid{grid-template-columns:1fr;gap:44px;max-width:380px;margin:auto}
  .project-phone:nth-child(2),.project-phone:nth-child(3){margin-top:0}
  .service-doors{grid-template-columns:1fr;max-width:560px;margin:auto;padding:0}
  .ai-section{grid-template-columns:1fr}
  .questions{grid-template-columns:1fr}
  .contact-inner{grid-template-columns:1fr}
  .maker{justify-self:start;max-width:320px;margin-left:10px}
}
@media (max-width:700px){
  body{font-size:15.5px}
  .masthead{padding:14px 16px}
  .masthead.is-solid{padding-block:10px}
  .brand{gap:9px}
  .brand svg{width:20px;height:26px}.brand span{font-size:14.5px;letter-spacing:.09em}.brand small{font-size:8.5px;letter-spacing:.2em;margin-top:4px}
  .masthead nav{gap:10px}
  .nav-works{display:none}
  .masthead nav a.nav-town{font-size:12.5px;letter-spacing:.06em}
  .masthead .pill{padding:10px 12px;gap:5px;font-size:12.5px;letter-spacing:.06em}
  .contact-long{display:none}.contact-short{display:inline}
  .hero{min-height:max(100svh,700px)}
  .hero{--bar:68px;--m:clamp(128px,17vh,160px)}
  .hero-bracket::after{display:none}
  .hero-plate{padding:28px 22px 24px}
  .hero h1{font-size:clamp(25px,7.3vw,30px);line-height:1.45}
  .hero-plate::before{inset:9px}.hero-plate::after{inset:14px}
  .hero-label{font-size:11.5px;letter-spacing:.24em;margin-bottom:12px}
  .hero-description{font-size:13.5px;margin-top:16px;padding-top:14px}
  .hero-link{margin-top:18px;font-size:14.5px;padding:6px 0}
  .motion-toggle{right:16px;bottom:46px;padding:8px 14px}
  .page-index{padding-top:56px}
  .page-index a{min-width:0;flex:1 1 calc(50% - 12px);padding:15px 38px 15px 18px;font-size:13.5px}
  .collection-heading.plate{padding:26px 24px;gap:14px}
  .plate-no{font-size:50px}
  .collection-heading h3{font-size:clamp(22px,6.2vw,26px);letter-spacing:.05em;margin-top:10px}
  .plate-en{font-size:11.5px;letter-spacing:.2em;line-height:1.5}
  .collection-heading.plate{grid-template-columns:auto minmax(0,1fr)}
  .questions h2{font-size:clamp(28px,7.4vw,34px)}
  .collection-heading.plate::before{inset:9px}.collection-heading.plate::after{inset:14px}
  .image-open{right:-8px;bottom:-14px;width:48px;height:48px;font-size:22px}
  .works-next{flex-direction:column;align-items:flex-start;padding:28px 24px}
  .scope-note{padding:26px 22px}
  .service-row{padding-top:120px}
  .contact-button{min-width:0;width:100%;padding:20px 22px}
  .footer-bottom{flex-direction:column;align-items:flex-start}
}
