/* Homepage renewal only: shared pages keep their existing presentation. */
.home-renewal #about .founder { margin-top:40px; padding:clamp(24px,4vw,40px); border:1px solid var(--line); border-radius:20px; background:linear-gradient(145deg,#fff,#f1edf7); }
.home-renewal #about .founder .section-head { margin-bottom:24px; }
.home-renewal #about .founder .eyebrow { margin:0 0 8px; color:var(--purple); font-size:.75rem; }
.home-renewal #about .founder h3 { margin:0; color:var(--deep); font-size:clamp(1.4rem,3vw,1.7rem); }
.home-renewal #about .founder-message { margin:0 0 24px; color:var(--deep); font-size:clamp(1.1rem,2.5vw,1.35rem); line-height:1.8; }
.home-renewal #about .founder-role { margin:0 0 20px; font-size:.95rem; }
.home-renewal #about .founder-story { line-height:2; overflow-wrap:anywhere; }
.home-renewal #about .founder-story p { margin:0 0 1.25em; }
.home-renewal #about .founder-story p:last-child { margin-bottom:0; }
.home-renewal #about .founder-strengths { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; list-style:none; padding:0; margin:24px 0 0; }
.home-renewal #about .founder-strengths li { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; min-width:0; padding:16px 8px; border:1px solid var(--line); border-radius:12px; background:#ffffffb3; color:var(--deep); font-size:.875rem; font-weight:600; line-height:1.6; text-align:center; }
.home-renewal #about .founder-strengths svg { flex-shrink:0; color:var(--purple); }
@media(max-width:600px) {
  .home-renewal #about .founder-strengths { grid-template-columns:1fr; gap:8px; }
  .home-renewal #about .founder-strengths li { flex-direction:row; gap:12px; padding:12px 16px; }
}
.home-renewal { --ink:#30333a; --muted:#62666e; --deep:#303747; --purple:#656579; --lav:#f1f2f4; --line:#e1e3e7; }
.home-renewal .wrap { width:min(1120px,calc(100% - 48px)); }
.home-renewal .section.alt { background:#f3edfc; }
.home-renewal .card { border-radius:18px; box-shadow:none; min-width:0; }
.home-renewal .card img { background:#f4f4f5; }
.home-renewal .btn { border-radius:10px; }
.home-renewal .btn.secondary { background:#e9dff5; }
.home-renewal a:focus-visible,.home-renewal button:focus-visible { outline:3px solid #666587; outline-offset:5px; }
.home-renewal [id] { scroll-margin-top:110px; }
.home-renewal .site-header nav { gap:22px; }
.home-renewal .site-header nav a { color:#444852; }
.skip-link { position:fixed; left:16px; top:-100px; background:#303747; color:white; padding:12px; z-index:30; }
.skip-link:focus { top:12px; }
.home-intro { padding:62px 0 70px; background:#f3edfc; }
.home-intro > .wrap > .eyebrow { font-size:.78rem; margin:0 0 16px; }
.home-intro h1 { font-size:clamp(1.85rem,4.5vw,3.4rem); letter-spacing:.02em; line-height:1.4; margin:0; }
.intro-lead { color:var(--muted); margin:18px 0 34px; }
.entrance-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px; }
.entrance { display:flex; flex-direction:column; background:#fff; border:1px solid var(--line); border-radius:20px; overflow:hidden; text-decoration:none; transition:transform .18s,border-color .18s; }
.entrance:hover { transform:translateY(-4px); border-color:#a5a5b6; }
.entrance-visual { height:230px; background:#efeff2; overflow:hidden; position:relative; }
.character-visual { display:flex; justify-content:center; align-items:flex-end; padding:18px 38px 0; gap:0; }
.character-visual img { width:54%; height:100%; object-fit:contain; }
.character-visual img + img { width:36%; height:72%; margin-left:-10px; margin-bottom:14px; }
.web-visual img { width:100%; height:100%; object-fit:cover; object-position:50% 58%; }
.web-visual:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#202522aa,transparent); }
.web-visual > span { position:absolute; z-index:1; top:62px; left:32px; color:white; font-size:2rem; line-height:1.4; letter-spacing:.1em; font-weight:700; }
.web-visual small { font-size:.75rem; letter-spacing:0; font-weight:400; }
.entrance-copy { padding:28px 32px 26px; display:flex; flex-direction:column; flex:1; }
.entrance-copy .eyebrow { font-size:.7rem; }
.entrance-copy h2 { font-size:clamp(1.45rem,2.5vw,1.9rem); margin:8px 0; }
.entrance-copy p { color:var(--muted); font-size:.95rem; margin:0 0 22px; }
.entrance-action { margin-top:auto; padding-top:16px; border-top:1px solid var(--line); display:flex; justify-content:space-between; font-weight:700; font-size:.9rem; }
.world-heading { padding-bottom:12px; }
.world-heading .eyebrow,#web-design .eyebrow { font-size:.75rem; margin:0 0 12px; }
.section-jumps { display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:24px; }
.section-jumps a { font-size:.9rem; text-underline-offset:5px; padding:5px 0; }
.home-renewal .halloween-banner { max-width:760px; }
.home-renewal #characters { background:white; }
.home-renewal #apps .grid { grid-template-columns:minmax(0,560px); }
.home-renewal #apps .card { display:grid; grid-template-columns:100px minmax(0,1fr); gap:0 24px; }
.home-renewal #apps .card img { grid-row:1 / 5; width:100px; height:100px; object-fit:contain; }
.home-renewal #apps h3 { margin-top:0; }
.home-renewal #apps p { margin:8px 0; }
.home-renewal #apps .tag { justify-self:start; }
.home-renewal .concept-cta,.home-renewal .contact-box { background:linear-gradient(145deg,#f3ecfc,#e9ddf7); }
.home-renewal .service-lead { font-size:1.3rem; color:var(--ink); margin-bottom:0; }
.service-summary { padding:24px 28px; margin:28px 0 42px; border:1px solid #d8dbe0; border-radius:16px; background:white; }
.service-summary strong { font-size:1.2rem; }
.service-summary p { margin:6px 0; color:var(--muted); font-size:.9rem; }
.home-renewal .web-portfolio-card { background:white; }
.home-renewal .new-book-notice { padding:24px; border-radius:16px; background:#eeeef1; margin:18px 0 24px; }
.home-renewal .new-book-notice .wrap { width:100%; }
.home-renewal .book-feature-cover { max-height:300px; }
.other-apps-title { margin-top:48px; }
.other-apps { grid-template-columns:repeat(2,minmax(0,1fr)); }
.other-apps .card img { width:88px; height:88px; }
.home-renewal .site-footer .footer-links { gap:14px 20px; }
@media(max-width:760px) {
.home-renewal .wrap { width:calc(100% - 32px); }
.home-renewal .nav { gap:12px; }
.home-renewal .site-header nav { gap:8px 18px; }
.home-renewal nav a { font-size:.8rem; padding:4px 0; }
.home-renewal [id] { scroll-margin-top:150px; }
.home-intro { padding:36px 0 44px; }
.entrance-grid { grid-template-columns:1fr; gap:22px; }
.entrance-visual { height:190px; }
.entrance-copy { padding:22px 24px; }
.entrance-copy h2 { font-size:1.5rem; }
.web-visual > span { top:44px; left:24px; font-size:1.7rem; }
.home-renewal .section h2 { font-size:1.6rem; }
.home-renewal .section { padding:48px 0; }
.home-renewal .world-heading { padding-bottom:8px; }
.home-renewal #apps .card { grid-template-columns:1fr; }
.home-renewal #apps .card img { grid-row:auto; margin-bottom:16px; }
.other-apps { grid-template-columns:1fr; }
.service-summary { padding:22px; }
.home-renewal .new-book-notice { padding:20px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .entrance { transition:none; } .entrance:hover { transform:none; } }

@media(max-width:760px) {
  .home-intro h1 span { display:block; }
  .home-intro h1 { font-size:clamp(1.6rem,7.5vw,2.5rem); }
  .home-renewal .site-header nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:2px 16px; }
}

/* Gentle light and official artwork; limited to the renewed homepage. */
.home-renewal { --purple:#74638e; --lav:#f1edf7; --line:#e3dfea; }
.home-intro { background:radial-gradient(ellipse at 83% 15%,#e9e0f5 0,transparent 45%),radial-gradient(ellipse at 10% 80%,#fbefe7 0,transparent 42%),linear-gradient(150deg,#fcfbfd,#f6f5f8); }
.home-intro h1 { color:#34303e; letter-spacing:.055em; }
.home-intro .eyebrow,.world-heading .eyebrow { color:#75618d; }
.entrance { border-color:#e2dce9; box-shadow:0 12px 35px #51406408; }
.entrance:hover { border-color:#a795bd; }
.entrance-visual { height:280px; }
.character-visual { padding:18px 30px 0; background:radial-gradient(ellipse at 50% 85%,#fffaf0 0,transparent 55%),linear-gradient(140deg,#eee8f8,#f8f4fa 55%,#e7e0f0); }
.character-visual:before,.character-visual:after { content:"✦"; position:absolute; color:#b5a1c8; font-size:24px; top:28px; left:12%; }
.character-visual:after { left:auto; right:12%; top:50px; font-size:13px; color:#c5ab7c; }
.character-visual img { position:relative; z-index:1; width:58%; filter:drop-shadow(0 12px 10px #73628e14); }
.character-visual img + img { width:38%; height:76%; margin-bottom:16px; }
.web-visual { background:linear-gradient(135deg,#f4efe8,#e7ece6); padding:24px 30px 38px; }
.web-visual:after { display:none; }
.screen-pc { width:90%; height:100%; border:6px solid #fff; border-top:14px solid #fff; border-radius:10px; overflow:hidden; box-shadow:0 10px 24px #39413926; }
.web-visual .screen-pc img { width:100%; height:100%; object-fit:cover; object-position:top; }
.screen-mobile { position:absolute; right:25px; top:53px; height:194px; width:94px; border:5px solid #fff; border-radius:15px; overflow:hidden; box-shadow:0 8px 18px #39413930; }
.web-visual .screen-mobile img { width:100%; height:100%; object-fit:cover; object-position:top; }
.web-visual > .sample-caption { top:auto; bottom:9px; left:30px; color:#555e55; font-size:.72rem; letter-spacing:.04em; font-weight:500; }
.home-renewal .world-heading { position:relative; padding:72px 0; background:radial-gradient(ellipse at 10% 30%,#f1eaf8,transparent 60%),#fcfbfd; overflow:hidden; }
.world-hero { display:grid; grid-template-columns:1fr 1fr; gap:52px; align-items:center; }
.world-copy h2 { font-family:"Yu Mincho","Hiragino Mincho ProN",serif; line-height:1.6; }
.world-copy > p:not(.eyebrow) { color:var(--muted); line-height:2; }
.world-illustration { position:relative; padding:12px; }
.world-illustration:before { content:"✦"; position:absolute; top:0; right:0; color:#b8a36d; font-size:28px; z-index:1; }
.world-illustration img { display:block; width:100%; height:auto; aspect-ratio:1; object-fit:cover; border-radius:48% 48% 12px 12px; box-shadow:0 18px 45px #66567d18; }
.world-heading .section-jumps { gap:10px; }
.world-heading .section-jumps a { border:1px solid #ded5e9; border-radius:30px; padding:7px 14px; background:#ffffffa8; text-decoration:none; }
.world-heading .section-jumps a:hover { background:#eee5f5; }
.home-renewal .halloween-banner { margin-top:40px; margin-bottom:12px; }
.home-renewal #characters { background:linear-gradient(180deg,#fff,#fbf9fd); }
.home-renewal #characters .character { border:0; border-radius:0; background:transparent; padding:12px 0; gap:24px; }
.home-renewal #characters .character img { background:radial-gradient(ellipse,#eee6f7,transparent 70%); border-radius:50%; }
.home-renewal #characters .character + .character img { background:radial-gradient(ellipse,#f7eadd,transparent 70%); }
.home-renewal #apps { background:#f5f2f8; }
.home-renewal #apps .grid { grid-template-columns:minmax(0,740px); }
.home-renewal #apps .card { background:transparent; border:0; padding:0; }
.home-renewal #works { background:linear-gradient(180deg,#fffdf9,#fcfaf6); }
.home-renewal #works .works-grid { gap:36px; }
.home-renewal #works .card { background:transparent; border:0; border-radius:0; padding:0 0 30px; border-bottom:1px solid #e7e0d6; }
.home-renewal #works .card img { height:320px; aspect-ratio:auto; object-fit:contain; background:#f1eade; padding:20px; border-radius:14px; }
.home-renewal #works .concept-card img { background:#f0eaf5; }
.home-renewal #works .card:nth-child(3) img { background:#eeeaf6; }
.home-renewal #works h3 { margin-top:22px; }
.home-renewal #music { background:#f7f4fb; }
.home-renewal .music-home { border:1px solid #e4d9ef; background:radial-gradient(ellipse at 85% 20%,#e2d9f1,transparent 55%),linear-gradient(120deg,#f9f6fc,#eee8f5); position:relative; }
.home-renewal .music-home:after { content:"✦ · ✧"; position:absolute; top:22px; right:28px; color:#9b87b5; letter-spacing:12px; }
@media(min-width:761px) { .home-renewal #works .concept-card { display:grid; grid-template-columns:1fr 1fr; gap:0 40px; grid-column:1 / -1; align-content:center; padding:12px 0 36px; } .home-renewal #works .concept-card img { grid-row:1 / 4; height:420px; } .home-renewal #works .concept-card .btn { justify-self:start; align-self:start; } }
@media(max-width:760px) {
 .entrance-visual { height:240px; }
 .character-visual { padding:16px 24px 0; }
 .web-visual { padding:24px 24px 38px; }
 .screen-mobile { right:20px; top:45px; height:166px; width:80px; }
 .web-visual > .sample-caption { left:24px; font-size:.7rem; }
 .home-renewal .world-heading { padding:48px 0; }
 .world-hero { grid-template-columns:1fr; gap:24px; }
 .world-illustration { width:min(100%,420px); margin:0 auto; }
 .home-renewal #characters .character { grid-template-columns:42% minmax(0,1fr); gap:16px; }
 .home-renewal #characters .characters { gap:24px; }
 .home-renewal #works .works-grid { grid-template-columns:1fr; gap:32px; }
 .home-renewal #works .card img { height:auto; max-height:400px; aspect-ratio:1; }
 .home-renewal .music-home:after { font-size:12px; top:12px; right:12px; }
}
.world-illustration img { aspect-ratio:auto; border-radius:60px 60px 16px 16px; max-width:420px; margin:0 auto; }
.world-copy h2 { font-size:clamp(1.8rem,3vw,2.5rem); }



/* Free wallpaper introduction */
.home-renewal .wallpaper-feature { padding: 32px 0 48px; }
.wallpaper-home-card { display: grid; grid-template-columns: 1.15fr 1fr; align-items: center; gap: 32px; padding: 28px; }
.wallpaper-preview { display: block; border-radius: 12px; overflow: hidden; }
.home-renewal .wallpaper-home-card img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: contain; }
.wallpaper-home-card .eyebrow { font-size: .75rem; margin: 0 0 10px; }
.home-renewal .wallpaper-home-card h2 { font-size: clamp(1.3rem, 2.4vw, 1.8rem); margin: 0 0 12px; }
.wallpaper-home-card p { color: var(--muted); }
@media (min-width: 761px) { .home-renewal .nav { flex-wrap: wrap; padding: 12px 0; gap: 10px 24px; } }
@media (max-width: 760px) { .wallpaper-home-card { grid-template-columns: 1fr; gap: 24px; padding: 20px; } }

/* First game preview on the homepage. Preserve the complete screenshot. */
.home-renewal #games .game-home-preview { display:block; max-width:900px; margin:24px auto; border-radius:14px; overflow:hidden; }
.home-renewal #games .game-home-preview img { display:block; width:100%; height:auto; aspect-ratio:auto; object-fit:contain; }

/* Carry Yozora's lavender palette through the bottom of the homepage. */
.home-renewal { background:#f8f4ff; }
.home-renewal #contact { background:linear-gradient(180deg,#f8f4ff,#f0e7fb); }
.home-renewal .contact-box { border:1px solid #ded1ee; }
.home-renewal .site-footer { background:#ece2f7; border-top-color:#dccdea; }
