:root{
    --ivory:#F7F4EF;
    --ivory-soft:#FBF9F5;
    --rose:#D8A48F;
    --rose-deep:#B97E66;
    --rose-ink:#9C6A55;
    --charcoal:#1A1A1A;
    --ink:#3A3531;
    --gray:#8C8C8C;
    --hairline:rgba(185,126,102,.32);
    --hairline-soft:rgba(185,126,102,.18);
    --serif:"Shippori Mincho B1","Yu Mincho","Hiragino Mincho ProN",serif;
    --latin:"Cormorant Garamond","Shippori Mincho B1",serif;
    --gothic:"Zen Kaku Gothic New","Yu Gothic UI",sans-serif;
    --maxw:1120px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    background:var(--ivory);
    color:var(--ink);
    font-family:var(--gothic);
    font-size:15px;
    line-height:1.9;
    letter-spacing:.02em;
    -webkit-font-smoothing:antialiased;
  }
  a{color:inherit;text-decoration:none}
  img{max-width:100%;display:block}
  .skipLink{position:fixed;top:12px;left:12px;z-index:200;padding:10px 16px;background:var(--ivory-soft);color:var(--charcoal);border:2px solid var(--rose-ink);transform:translateY(-150%)}
  .skipLink:focus-visible{transform:translateY(0)} /* キーボード由来のフォーカス時のみ表示(マウスで✕を閉じた直後に不意に出ない) */
  :focus-visible{outline:3px solid var(--rose-ink);outline-offset:3px}
  #main-content{scroll-margin-top:80px}

  /* ───────── Header ───────── */
  .siteHeader{
    position:sticky;top:0;z-index:50;
    background:rgba(250,247,242,.92);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--hairline-soft);
    transition:box-shadow .3s;
  }
  .siteHeader.scrolled{box-shadow:0 2px 18px rgba(120,80,60,.08)}
  .headerInner{
    max-width:var(--maxw);margin:0 auto;padding:14px 24px;
    display:flex;align-items:center;gap:28px;
    transition:padding .3s;
  }
  /* スクロール短縮は廃止(2026-10-14本人指示: ブランド2段を常時維持・Folioヘッダーとの平仄)。scrolledは影のみ */
  .brand{display:flex;align-items:center;gap:12px;flex-shrink:0}
  .brandMark{width:42px;height:42px;object-fit:contain;transition:width .3s,height .3s}
  .brandText{display:flex;flex-direction:column;line-height:1.25}
  .brandMain{
    font-family:var(--latin);font-size:17px;font-weight:600;letter-spacing:.14em;
    color:var(--charcoal);
  }
  .brandSub{
    font-family:var(--latin);font-size:10.5px;letter-spacing:.34em;
    color:var(--rose-ink);text-transform:uppercase;
  }
  nav.primaryNav{margin-left:auto;display:flex;align-items:center;gap:4px}
  .navLink{
    position:relative;padding:8px 13px;
    font-family:var(--serif);font-size:14px;letter-spacing:.1em;color:var(--ink);
  }
  .navLink::after{
    content:"";position:absolute;left:13px;right:13px;bottom:3px;height:1px;
    background:linear-gradient(90deg,var(--rose),rgba(216,164,143,0));
    transform:scaleX(0);transform-origin:left;transition:transform .25s;
  }
  .navLink:hover{color:var(--rose-deep)}
  .navLink:hover::after,.navLink.active::after{transform:scaleX(1)}
  .navLink.active{color:var(--rose-deep)}
  .navDivider{width:1px;height:20px;background:var(--hairline);margin:0 10px}
  .navFolio{
    font-family:var(--serif);font-size:14px;letter-spacing:.08em;padding:8px 13px;color:var(--ink);
  }
  .navFolio .adult{color:var(--rose-deep);font-size:11.5px;font-weight:700;margin-left:3px}
  .navFolio:hover{color:var(--rose-deep)}
  .navPatreon{
    font-family:var(--serif);font-size:14px;letter-spacing:.08em;padding:8px 13px;color:var(--ink);
  }
  .navPatreon:hover{color:var(--rose-deep)}
  .ext{font-size:11px;vertical-align:super;margin-left:2px;color:var(--gray)}
  .hamburger{display:none}

  /* ───────── Hero ───────── */
  .worldHome .hero{
    position:relative;overflow:hidden;
    min-height:calc(100vh - 71px);
    display:flex;align-items:center;
    color:#F6EDE6;
    background:
      radial-gradient(ellipse 90% 70% at 72% 18%, rgba(244,214,196,.34), rgba(244,214,196,0) 60%),
      radial-gradient(ellipse 60% 55% at 85% 72%, rgba(216,164,143,.22), rgba(216,164,143,0) 65%),
      radial-gradient(ellipse 75% 85% at 15% 85%, rgba(94,62,54,.55), rgba(94,62,54,0) 70%),
      linear-gradient(160deg,#241a18 0%,#3a2622 34%,#6b4238 62%,#a96f58 86%,#d8a48f 100%);
  }
  .worldHome .heroArch{position:absolute;inset:0;pointer-events:none;opacity:.5}
  .worldHome .heroVeil{
    position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(180deg,rgba(26,26,26,.25) 0%,rgba(26,26,26,0) 35%,rgba(26,26,26,.3) 100%);
  }
  .worldHome .petal{
    position:absolute;width:9px;height:9px;border-radius:9px 0;
    background:rgba(240,200,180,.5);
    animation:fall linear infinite;pointer-events:none;
  }
  @keyframes fall{
    0%{transform:translate3d(0,-6vh,0) rotate(0deg);opacity:0}
    12%{opacity:.85}
    100%{transform:translate3d(-14vw,82vh,0) rotate(300deg);opacity:0}
  }
  .worldHome .heroInner{
    position:relative;z-index:2;
    max-width:var(--maxw);margin:0 auto;padding:72px 24px 96px;width:100%;
    display:grid;grid-template-columns:1fr 340px;gap:48px;align-items:center;
  }
  /* 玄関のキャラVisual(6章Gateway構想: Shuffle/Pinned。本番はPublic-safeな立ち絵) */
  .worldHome .gateChar{
    height:min(62vh,540px);aspect-ratio:3/4;justify-self:end;
    border-radius:6px;border:1px solid rgba(242,226,216,.25);
    position:relative;overflow:hidden;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 18px 56px rgba(15,8,6,.45);
    transition:opacity .7s ease;
  }
  .worldHome .gateChar svg{width:56px;height:56px;opacity:.45}
.worldHome .gateDots{display:flex;gap:9px;justify-content:center;margin-top:14px}
  .worldHome .gateDot{
    width:9px;height:9px;border-radius:50%;cursor:pointer;border:1px solid rgba(242,226,216,.6);
    background:transparent;padding:0;transition:all .25s;
  }
  .worldHome .gateDot:hover{border-color:#F2E2D8}
  .worldHome .gateDot.on{background:var(--rose);border-color:var(--rose);box-shadow:0 0 8px rgba(216,164,143,.6)}
  .worldHome .gateShuffle{
    display:block;margin:10px auto 0;background:none;border:none;cursor:pointer;
    font-family:var(--gothic);font-size:10.5px;letter-spacing:.14em;color:rgba(242,226,216,.65);
  }
  .worldHome .gateShuffle:hover{color:#F2E2D8}
  .worldHome .gateShuffle.hidden{visibility:hidden}
  /* スクロールの合図(正面扉のもう一つの顔) */
  .worldHome .scrollCue{
    position:absolute;left:50%;bottom:16px;transform:translateX(-50%);z-index:2;
    display:flex;flex-direction:column;align-items:center;gap:4px;
    color:rgba(242,226,216,.7);font-size:10px;letter-spacing:.3em;pointer-events:none;
  }
  .worldHome .scrollCue span{display:block;width:1px;height:26px;background:linear-gradient(180deg,rgba(216,164,143,.8),rgba(216,164,143,0));animation:cue 2.2s ease-in-out infinite}
  @keyframes cue{0%{transform:scaleY(.2);transform-origin:top;opacity:0}30%{transform:scaleY(1);opacity:1}100%{transform:scaleY(1);opacity:0}}
  .worldHome .heroCopy{
    font-family:var(--serif);font-weight:500;
    font-size:clamp(28px,4.4vw,46px);
    letter-spacing:.14em;line-height:1.78;
    text-shadow:0 2px 24px rgba(20,10,8,.45);
  }
  .worldHome .heroRule{
    width:120px;height:1px;margin:30px 0 24px;
    background:linear-gradient(90deg,var(--rose),rgba(216,164,143,0));
    position:relative;
  }
  .worldHome .heroRule::before{
    content:"";position:absolute;left:54px;top:-3px;width:7px;height:7px;
    transform:rotate(45deg);background:var(--rose);
  }
  .worldHome .heroSub{
    font-family:var(--serif);font-size:15px;letter-spacing:.22em;color:#EBD6C8;
  }
  .worldHome .heroCta{display:flex;gap:16px;margin-top:44px;flex-wrap:wrap}
  .btn{
    display:inline-flex;align-items:center;gap:8px;
    font-family:var(--serif);font-size:14px;letter-spacing:.14em;
    padding:13px 30px;border-radius:2px;transition:all .25s;
  }
  .btnPrimary{
    color:#fff;background:linear-gradient(135deg,var(--rose) 0%,var(--rose-deep) 100%);
    box-shadow:0 4px 18px rgba(185,126,102,.4);
  }
  .btnPrimary:hover{transform:translateY(-1px);box-shadow:0 7px 24px rgba(185,126,102,.5)}
  .btnGhost{color:#F2E2D8;border:1px solid rgba(242,226,216,.55)}
  .btnGhost:hover{border-color:#F2E2D8;background:rgba(242,226,216,.08)}
/* ───────── 差し込み(Spotlight): 来訪時のお知らせカード。ATRI方式 ───────── */
  .spot{
    position:fixed;inset:0;z-index:90;display:none;
    background:rgba(26,26,26,.45);backdrop-filter:blur(4px);
    align-items:center;justify-content:center;padding:28px;
  }
  .spot.open{display:flex}
  .spotCard{
    position:relative;width:min(820px,100%);
    background:var(--ivory-soft);border:1px solid var(--hairline);border-radius:6px;
    overflow:hidden;box-shadow:0 26px 80px rgba(20,10,8,.45);
    display:grid;grid-template-columns:46% 1fr;
    animation:spotIn .45s cubic-bezier(.22,.8,.3,1);
  }
  @keyframes spotIn{from{transform:translateY(22px) scale(.97);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}
  .spotClose{
    position:absolute;right:12px;top:12px;z-index:2;width:36px;height:36px;border-radius:50%;
    background:rgba(251,249,245,.9);border:1px solid var(--hairline);color:var(--rose-ink);
    font-size:15px;cursor:pointer;transition:all .25s;
  }
  .spotClose:hover{border-color:var(--rose);color:var(--rose-deep);transform:rotate(90deg)}
  .spotVisual{
    min-height:320px;position:relative;transition:opacity .3s;
  }
.spotBody{padding:42px 38px 34px;display:flex;flex-direction:column;transition:opacity .3s}
  .spotLabel{font-family:var(--latin);font-size:11px;font-weight:600;letter-spacing:.34em;color:var(--rose-ink);text-transform:uppercase}
  .spotTitle{font-family:var(--serif);font-size:clamp(19px,2.4vw,24px);font-weight:600;letter-spacing:.1em;color:var(--charcoal);line-height:1.9;margin-top:14px}
  .spotLead{font-size:13px;line-height:2.1;color:var(--gray);margin-top:12px}
  .spotCta{margin-top:auto;padding-top:24px}
  .spotDots{display:flex;gap:8px;justify-content:center;padding:0 0 20px;grid-column:1/-1}
  .spotDot{width:8px;height:8px;border-radius:50%;border:1px solid var(--hairline);background:transparent;cursor:pointer;padding:0;transition:all .25s}
  .spotDot.on{background:var(--rose);border-color:var(--rose)}
/* ───────── 共通セクション ───────── */
  section{padding:92px 24px}
  .sectionInner{max-width:var(--maxw);margin:0 auto}
  .secHead{text-align:center;margin-bottom:54px}
  .secEn{
    font-family:var(--latin);font-size:13px;font-weight:600;
    letter-spacing:.4em;color:var(--rose-ink);text-transform:uppercase;
  }
  .secTitle{
    font-family:var(--serif);font-size:clamp(22px,2.6vw,28px);font-weight:600;
    letter-spacing:.14em;color:var(--charcoal);margin-top:10px;
  }
  .secRule{
    width:64px;height:1px;margin:20px auto 0;
    background:linear-gradient(90deg,rgba(216,164,143,0),var(--rose),rgba(216,164,143,0));
    position:relative;
  }
  .secRule::before{
    content:"";position:absolute;left:50%;top:-2.5px;width:6px;height:6px;
    transform:translateX(-50%) rotate(45deg);background:var(--rose);
  }
  .placeholderThumb{position:relative;overflow:hidden}
/* ───────── About ───────── */
  .worldHome .about{background:var(--ivory)}
  .worldHome .aboutLead{
    max-width:640px;margin:0 auto;text-align:center;
    font-family:var(--serif);font-size:16px;line-height:2.4;letter-spacing:.08em;
  }
  .worldHome .aboutLead em{font-style:normal;color:var(--rose-deep)}
  .worldHome .aboutMore{text-align:center;margin-top:40px}
  .btnLine{
    display:inline-flex;align-items:center;gap:10px;
    font-family:var(--serif);font-size:14px;letter-spacing:.16em;color:var(--rose-deep);
    padding:12px 34px;border:1px solid var(--hairline);border-radius:2px;
    background:var(--ivory-soft);transition:all .25s;
  }
  .btnLine:hover{border-color:var(--rose);box-shadow:0 3px 14px rgba(185,126,102,.18);transform:translateY(-1px)}
  .btnLine .arrow{font-family:var(--latin);transition:transform .25s}
  .btnLine:hover .arrow{transform:translateX(3px)}

  /* ───────── Characters ───────── */
  .worldHome .characters{background:linear-gradient(180deg,var(--ivory) 0%,#F3EDE4 100%)}
  .worldHome .charGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
  .worldHome .charCard{
    background:var(--ivory-soft);border:1px solid var(--hairline-soft);border-radius:4px;
    overflow:hidden;transition:all .3s;
  }
  .worldHome .charCard:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(120,80,60,.14);border-color:var(--hairline)}
  .worldHome .charPortrait{
    aspect-ratio:3/4;
    display:flex;align-items:center;justify-content:center;
    position:relative;overflow:hidden;
    background:
      radial-gradient(ellipse 70% 55% at 50% 30%, rgba(244,214,196,.55), rgba(244,214,196,0) 70%),
      linear-gradient(170deg,#EFE4D8 0%,#E3CFC2 100%);
  }
  .worldHome .charPortrait img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
  .worldHome .charPortrait svg{width:52px;height:52px;opacity:.5}
  .worldHome .charBody{padding:18px 18px 22px;text-align:center}
  .worldHome .charName{font-family:var(--serif);font-size:16px;letter-spacing:.18em;color:var(--charcoal)}
  .worldHome .charNameEn{font-family:var(--latin);font-size:11px;letter-spacing:.3em;color:var(--rose-ink);margin-top:3px;text-transform:uppercase}
  .worldHome .charWord{font-size:12.5px;color:var(--gray);margin-top:10px;line-height:1.8}
  .worldHome .charMore{text-align:center;margin-top:44px}

  /* ───────── Featured Works ───────── */
  .worldHome .featured{background:var(--ivory)}
  .worldHome .featNote{
    text-align:center;font-size:12.5px;color:var(--gray);letter-spacing:.06em;margin:-34px 0 44px;
  }
  .featGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
  .featCard{
    background:var(--ivory-soft);border:1px solid var(--hairline-soft);border-radius:4px;
    overflow:hidden;transition:all .3s;
  }
  .featCard:hover{transform:translateY(-4px);box-shadow:0 10px 28px rgba(120,80,60,.14)}
  .featThumb{
    aspect-ratio:4/3;
    background:
      radial-gradient(ellipse 80% 60% at 30% 25%, rgba(244,214,196,.5), rgba(244,214,196,0) 70%),
      linear-gradient(150deg,#E8D9CB 0%,#D9BFAF 55%,#C9A48F 100%);
  }
  .featThumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
  .featCard:nth-child(2) .featThumb{
    background:
      radial-gradient(ellipse 80% 60% at 70% 20%, rgba(240,220,228,.5), rgba(240,220,228,0) 70%),
      linear-gradient(150deg,#E4D6D6 0%,#D4B8BC 55%,#BE9AA4 100%);
  }
  .featCard:nth-child(3) .featThumb{
    background:
      radial-gradient(ellipse 80% 60% at 50% 70%, rgba(214,210,232,.4), rgba(214,210,232,0) 70%),
      linear-gradient(150deg,#DED8D2 0%,#C3B4B8 55%,#A08E9E 100%);
  }
  .featBody{padding:20px 20px 24px}
  .featTitle{font-family:var(--serif);font-size:16px;letter-spacing:.1em;color:var(--charcoal);line-height:1.7}
  .featMeta{display:flex;align-items:center;gap:8px;margin-top:12px;flex-wrap:wrap}
  .chip{
    font-size:11px;letter-spacing:.08em;color:var(--rose-ink);
    border:1px solid var(--hairline);border-radius:20px;padding:3px 12px;background:var(--ivory);
  }
  .worldHome .featLink{
    display:inline-flex;align-items:center;gap:6px;margin-top:16px;
    font-family:var(--serif);font-size:12.5px;letter-spacing:.1em;color:var(--rose-deep);
  }
  .worldHome .featLink:hover .arrow{transform:translateX(3px)}
  .worldHome .featLink .arrow{transition:transform .25s;font-family:var(--latin)}

  /* ───────── Folio CTA ───────── */
  .folioCta{
    background:
      radial-gradient(ellipse 70% 90% at 85% 15%, rgba(216,164,143,.16), rgba(216,164,143,0) 65%),
      linear-gradient(160deg,#211B19 0%,#2B211E 60%,#35261F 100%);
    color:#EFE3DA;
  }
  .folioInner{
    max-width:var(--maxw);margin:0 auto;
    display:flex;align-items:center;gap:56px;
  }
  .folioText{flex:1}
  .folioEn{font-family:var(--latin);font-size:13px;font-weight:600;letter-spacing:.4em;color:var(--rose);text-transform:uppercase}
  .folioTitle{
    font-family:var(--serif);font-size:clamp(22px,2.8vw,30px);font-weight:600;
    letter-spacing:.14em;margin-top:12px;line-height:1.7;
  }
  .folioDesc{font-size:14px;line-height:2.2;letter-spacing:.05em;color:#CBB8AC;margin-top:20px;max-width:520px}
  .folioBadge{
    display:inline-flex;align-items:center;gap:8px;margin-top:26px;
    font-size:12px;letter-spacing:.1em;color:#E8C9B8;
    border:1px solid rgba(216,164,143,.45);border-radius:2px;padding:7px 14px;
  }
  .folioBadge b{color:var(--rose);font-size:13px}
  .folioAction{margin-top:30px}
  .folioBook{
    flex-shrink:0;width:230px;aspect-ratio:3/4;position:relative;border-radius:3px 8px 8px 3px;
    background:linear-gradient(120deg,#4A332B 0%,#5C4033 55%,#6E4C3B 100%);
    box-shadow:14px 18px 44px rgba(0,0,0,.45);
  }
  .folioBook::before{
    content:"";position:absolute;left:14px;top:0;bottom:0;width:1px;
    background:linear-gradient(180deg,rgba(216,164,143,.1),rgba(216,164,143,.7),rgba(216,164,143,.1));
  }
  .folioBookLabel{
    position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;
    flex-direction:column;font-family:var(--latin);font-size:24px;font-weight:600;letter-spacing:.18em;line-height:1.9;color:var(--rose);
  }

  /* ───────── News ───────── */
  .worldHome .news{background:var(--ivory)}
  .newsList{max-width:780px;margin:0 auto;border-top:1px solid var(--hairline-soft)}
  .newsRow{
    display:flex;align-items:center;gap:22px;
    padding:22px 10px;border-bottom:1px solid var(--hairline-soft);transition:background .2s;
  }
  .newsRow:hover{background:var(--ivory-soft)}
  .newsDate{font-family:var(--latin);font-size:13px;letter-spacing:.12em;color:var(--gray);flex-shrink:0;width:96px}
  .worldHome .newsCat{flex-shrink:0}
  .newsTitle{font-family:var(--serif);font-size:14.5px;letter-spacing:.06em;color:var(--ink)}
  .newsRow:hover .newsTitle{color:var(--rose-deep)}
  .worldHome .newsMore{text-align:center;margin-top:40px}

  /* ───────── Community / Support ───────── */
  .worldHome .connect{background:linear-gradient(180deg,var(--ivory) 0%,#F3EDE4 100%)}
  .worldHome .connectGrid{display:grid;grid-template-columns:1fr 1fr;gap:26px;max-width:880px;margin:0 auto}
  .worldHome .connectCard{
    background:var(--ivory-soft);border:1px solid var(--hairline-soft);border-radius:4px;
    padding:38px 36px 40px;text-align:center;transition:all .3s;
  }
  .worldHome .connectCard:hover{transform:translateY(-3px);box-shadow:0 10px 26px rgba(120,80,60,.13);border-color:var(--hairline)}
  .worldHome .connectEn{font-family:var(--latin);font-size:12px;font-weight:600;letter-spacing:.38em;color:var(--rose-ink);text-transform:uppercase}
  .worldHome .connectTitle{font-family:var(--serif);font-size:19px;letter-spacing:.14em;color:var(--charcoal);margin-top:10px}
  .worldHome .connectDesc{font-size:13px;line-height:2.1;color:var(--gray);margin-top:16px}
  .worldHome .connectAction{margin-top:26px}

  /* ───────── Footer ───────── */
  footer{
    background:var(--charcoal);color:#BFB4AC;
    padding:64px 24px 34px;
  }
  .footInner{max-width:var(--maxw);margin:0 auto}
  .footTop{display:flex;gap:64px;flex-wrap:wrap}
  .footBrand{flex:1;min-width:230px}
  .footBrandText{display:flex;flex-direction:column;line-height:1.4}
  .footBrandMain{font-family:var(--latin);font-size:18px;font-weight:600;letter-spacing:.14em;color:#F2E8E0}
  .footBrandSub{font-family:var(--latin);font-size:10.5px;letter-spacing:.34em;color:var(--rose);text-transform:uppercase}
  .footMotto{font-family:var(--serif);font-size:12.5px;letter-spacing:.12em;color:#8E837B;margin-top:18px}
  .footCol h2{
    font-family:var(--latin);font-size:11.5px;font-weight:600;letter-spacing:.3em;
    color:var(--rose);text-transform:uppercase;margin-bottom:16px;
  }
  .footCol a{display:block;font-size:13px;letter-spacing:.06em;padding:4px 0;color:#BFB4AC}
  .footCol a:hover{color:#F2E8E0}
  .footBottom{
    margin-top:52px;padding-top:22px;border-top:1px solid rgba(216,164,143,.18);
    display:flex;align-items:center;gap:18px;flex-wrap:wrap;
    font-size:11.5px;letter-spacing:.08em;color:#7E756E;
  }
  .footBottom .spacer{flex:1}

  /* ───────── Mobile ───────── */
  @media (max-width:900px){
    nav.primaryNav{display:none}
    .hamburger{
      display:flex;flex-direction:column;justify-content:center;gap:5px;
      margin-left:auto;width:40px;height:40px;padding:8px;
      background:none;border:1px solid var(--hairline);border-radius:3px;cursor:pointer;
    }
    .hamburger span{height:1px;background:var(--ink);transition:all .25s}
    .mobileMenu{
      display:none;position:fixed;inset:0;z-index:60;
      background:rgba(250,247,242,.97);backdrop-filter:blur(8px);
      padding:26px 28px;overflow:auto;
    }
    .mobileMenu.open{display:block}
    .mmHead{display:flex;align-items:center}
    .mmClose{
      margin-left:auto;width:40px;height:40px;border:1px solid var(--hairline);border-radius:3px;
      background:none;font-size:18px;color:var(--ink);cursor:pointer;
    }
    .mmGroup{margin-top:34px;border-bottom:1px solid var(--hairline-soft);padding-bottom:26px}
    .mmGroup a{
      display:block;font-family:var(--serif);font-size:17px;letter-spacing:.14em;
      padding:12px 4px;color:var(--ink);
    }
    .mmLabel{font-family:var(--latin);font-size:11px;letter-spacing:.3em;color:var(--rose-ink);text-transform:uppercase;margin-bottom:4px}
    /* v2で基本側に.worldHomeが付き詳細度負けしていたスマホ2列化の救済(全繋ぎ検収#3) */
    .worldHome .charGrid{grid-template-columns:repeat(2,1fr);gap:14px}
    /* News行は狭幅では「日付+チップ/題名全幅」の2段に畳む(全繋ぎ検収#4) */
    .newsRow{flex-wrap:wrap;gap:10px 14px;padding:18px 6px}
    .newsDate{width:auto}
    .newsRow .newsTitle{flex-basis:100%;line-height:1.9}
    .featGrid{grid-template-columns:1fr;gap:18px}
    .folioInner{flex-direction:column;gap:40px;text-align:center}
    .folioDesc{margin-left:auto;margin-right:auto}
    .connectGrid{grid-template-columns:1fr}
    section{padding:68px 20px}
    .heroInner{padding:64px 20px 88px;grid-template-columns:1fr;gap:34px}
    .gateChar{height:min(44vh,360px);justify-self:center}
    .spotCard{grid-template-columns:1fr;max-height:92vh;overflow:auto}
    .spotVisual{min-height:200px}
    .spotBody{padding:28px 22px 20px}
    .footTop{gap:36px}
  }
.mobileMenu{display:none}
.hero .petal:nth-of-type(1){left:68%;animation-duration:14s;animation-delay:0s}
.hero .petal:nth-of-type(2){left:80%;animation-duration:18s;animation-delay:4s;width:7px;height:7px}
.hero .petal:nth-of-type(3){left:56%;animation-duration:16s;animation-delay:8s;width:6px;height:6px}
.hero .petal:nth-of-type(4){left:88%;animation-duration:20s;animation-delay:11s}
.featNote.afterGrid{margin:40px 0 0}
.pendingLink{cursor:default;opacity:.62}
.stubMain{min-height:56vh;display:grid;place-items:center;text-align:center;padding:90px 24px}
.stubMain h1{font-family:var(--serif);font-size:clamp(24px,4vw,36px);letter-spacing:.14em}
.stubMain h2{margin:24px 0 0;font-family:var(--serif);font-size:clamp(20px,3vw,28px);font-weight:500;letter-spacing:.08em}
.stubMain p{margin:18px 0 36px;line-height:1.9}
.stubActions{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

.featLink .mini18{font-size:10px;font-weight:700;color:var(--rose-deep);border:1px solid var(--hairline);border-radius:2px;padding:1px 5px}
.featCard.pendingLink{opacity:1}
.featCard.pendingLink:hover{transform:none;box-shadow:none}


/* 共有部品: ページ見出し、見出し罫、カード */
.pageHead{text-align:center;padding:72px 24px 46px}
.pageEn{font-family:var(--latin);font-size:13px;font-weight:600;letter-spacing:.4em;color:var(--rose-ink);text-transform:uppercase}
.pageTitle{font-family:var(--serif);font-size:clamp(23px,2.8vw,30px);font-weight:600;letter-spacing:.14em;color:var(--charcoal);margin-top:10px}
.pageLead{font-size:13.5px;color:var(--gray);margin-top:16px;letter-spacing:.06em}
.headRule{flex:1;height:1px;background:linear-gradient(90deg,var(--hairline),rgba(216,164,143,0));align-self:center}
.workCard{background:var(--ivory-soft);border:1px solid var(--hairline-soft);border-radius:4px;overflow:hidden;transition:all .3s}
.workCard:hover{transform:translateY(-3px);box-shadow:0 8px 22px rgba(120,80,60,.13)}


/* Characters Hub / Detail shared portrait and closet pieces */
.pvPortrait svg{width:64px;height:64px;opacity:.45}
.pvMedia{display:flex;gap:14px;align-items:flex-start}
.closetWrap{width:60px;flex-shrink:0;display:flex;flex-direction:column;align-items:center}
.closet{display:flex;flex-direction:column;gap:10px;margin-top:12px}
.closetThumb:hover{border-color:var(--rose);transform:translateY(-2px)}
.closetThumb.on{border-color:var(--rose);box-shadow:0 0 0 2px rgba(216,164,143,.3)}
.closetThumb .cArt{position:absolute;inset:0}
.closetThumb.locked{cursor:default;opacity:.65}
.closetThumb.locked:hover{transform:none;border-color:var(--hairline-soft)}
.closetThumb.locked .cArt{background:linear-gradient(170deg,#E6DDD2 0%,#D2C4B6 100%)}
.closetThumb.locked .cLock svg{width:16px;height:16px;stroke:#9C6A55;opacity:.7}
.closetThumb.locked .cLabel{color:var(--gray)}

/* DL-015: ページ別の固定された刻と共有アンビエント。配布時にstyle.cssへ結合する。 */
.aboutPage{background:linear-gradient(180deg,#F8F0E5 0%,#F5EBDD 30%,#F2E5D3 55%,#F0E1CD 70%,#F0E1CD 100%)}
.charactersHub{background:radial-gradient(ellipse 85% 46% at 50% -8%,rgba(214,231,243,.55),rgba(214,231,243,0) 68%),radial-gradient(ellipse 50% 30% at 78% 2%,rgba(255,246,214,.5),rgba(255,246,214,0) 70%),linear-gradient(180deg,#FAF8F3 0%,var(--ivory) 45%,#F6F3EC 100%)}
.characterDetail{background:radial-gradient(ellipse 85% 46% at 50% -8%,rgba(214,231,243,.55),rgba(214,231,243,0) 68%),radial-gradient(ellipse 50% 30% at 78% 2%,rgba(255,246,214,.5),rgba(255,246,214,0) 70%),linear-gradient(180deg,#FAF8F3 0%,var(--ivory) 45%,#F6F3EC 100%)}
.worksPage{background:linear-gradient(115deg,rgba(255,224,160,.26) 0%,rgba(255,224,160,0) 46%),radial-gradient(ellipse 70% 44% at 24% -6%,rgba(255,236,190,.38),rgba(255,236,190,0) 66%),linear-gradient(180deg,#F8F4EC 0%,#F6F0E3 50%,#F3EAD9 100%)}
.newsSurface{background:radial-gradient(ellipse 70% 46% at 72% -8%,rgba(255,214,196,.45),rgba(255,214,196,0) 66%),radial-gradient(ellipse 60% 36% at 18% -4%,rgba(222,233,240,.4),rgba(222,233,240,0) 70%),linear-gradient(180deg,#FBF8F3 0%,#F8F4ED 60%,#F7F2E9 100%)}
.guidebook{background:radial-gradient(ellipse 52% 34% at 50% -4%,rgba(255,202,146,.4),rgba(255,202,146,0) 70%),radial-gradient(ellipse 40% 26% at 82% 46%,rgba(255,214,166,.22),rgba(255,214,166,0) 70%),linear-gradient(180deg,#F4EDE3 0%,#EFE4D6 55%,#E9DACA 100%);min-height:65vh}
/* ── 刻の空気(各ページ固定アンビエント・DL-015系): 生成はambient.js ── */
.hourAmbient{position:fixed;inset:0;pointer-events:none;z-index:40;overflow:hidden}
.ambientMote{position:absolute;border-radius:50%;background:#FFF2D9;box-shadow:0 0 5px rgba(255,236,200,.7);opacity:0;animation:hourMote var(--d,18s) linear var(--delay,0s) infinite}
@keyframes hourMote{0%{transform:translateY(8vh);opacity:0}15%{opacity:var(--o,.3)}60%{opacity:calc(var(--o,.3)*.5)}85%{opacity:var(--o,.3)}100%{transform:translateY(-14vh);opacity:0}}
.ambientPetal{position:absolute;top:-4vh;border-radius:9px 0;background:rgba(216,150,130,.4);animation:hourFall var(--fall,20s) linear var(--delay,0s) infinite}
@keyframes hourFall{to{transform:translate3d(-9vw,108vh,0) rotate(300deg)}}
@media(prefers-reduced-motion:reduce){.ambientMote,.ambientPetal{animation:none;display:none}}
