:root{--ink:#282929;--muted:#737572;--line:#e5e4e1;--font:"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;--accent:#5c9da7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:var(--ink);background:#fff;font-family:var(--font);font-weight:400;-webkit-font-smoothing:antialiased}button,input,a,small,h1,h2,h3,p,span{font-family:inherit}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit;text-decoration:none}button{color:inherit;cursor:pointer;font-size:inherit;border:0;background:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:5px}img{display:block;max-width:100%}h1,h2,h3,p{margin:0}h2{font-size:27px;font-weight:400;letter-spacing:.06em}button{padding:0}.skip{position:fixed;top:-100px;z-index:20;background:white;padding:15px}.skip:focus{top:0}.gi-header{position:absolute;top:22px;left:7%;right:7%;height:76px;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border:1px solid #ffffff8c;background:#ffffffb8;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:0 0 24px 24px}.brand{width:216px}.brand img,.footer-brand img{mix-blend-mode:multiply;height:auto;width:100%}.gi-header nav{display:flex;gap:28px;align-items:center;font-size:12px}.gi-header nav a{padding:12px 0;border-bottom:1px solid var(--ink)}.header-tools{display:flex;gap:10px}.icon-button{height:44px;width:44px;display:grid;place-items:center;border-radius:15px;background:#ffffff4d}.icon-button svg{width:22px;fill:none;stroke:currentColor;stroke-width:1.25}.hero{position:relative;height:520px;background:#e8ebee;overflow:hidden}.hero-photo{position:absolute;inset:0;background-image:linear-gradient(90deg,#eef1f4f5 0%,#eef1f4dc 36%,#eef1f480 50%,#eef1f400 72%),url('assets/hero-keyboard.webp');background-size:cover;background-position:center 35%;transition:opacity .25s}.hero-content{position:relative;margin:auto;max-width:1160px;padding:126px 0 0}.hero h1{font-size:46px;font-weight:300;line-height:1.48;letter-spacing:.10em}.hero-content p{font-size:13px;line-height:1.95;margin-top:20px;letter-spacing:.035em;max-width:640px}.pill{display:flex;align-items:center;justify-content:center;gap:25px;min-height:54px;border:1px solid var(--line);border-radius:50px;background:linear-gradient(135deg,#ffffffd9,#f4f4f1b0);font-size:14px;letter-spacing:.09em}.hero-cta{width:188px;margin-top:24px}.arrow{border:1px solid var(--line);width:29px;height:29px;display:grid;place-items:center;border-radius:50%;font-size:17px}.hero-controls{position:absolute;bottom:27px;right:7%;display:flex;align-items:center;gap:13px;color:#49525c;font-size:11px;letter-spacing:.18em}.slide-line{width:70px;height:1px;background:#49525c70;margin-right:17px}.hero-controls button{border:1px solid #49525c60;width:38px;height:38px;border-radius:50%;font-size:20px}.section{width:calc(100% - 112px);max-width:1160px;margin:auto}.pickup{padding-top:48px;padding-bottom:52px}.section-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:26px}.eyebrow{font-size:11px;letter-spacing:.22em;font-weight:300;color:var(--muted);margin-bottom:9px}.section-description{font-size:13px;color:var(--muted);line-height:1.8;margin-top:10px;letter-spacing:.04em}.text-link{font-size:12px;letter-spacing:.04em;display:flex;gap:15px;align-items:center;min-height:44px}.text-link span{font-size:20px}.bubble-field{position:relative;height:250px}.bubble{position:absolute;left:var(--x);top:calc(var(--y) * .88);width:var(--s);height:var(--s);border-radius:50%;padding:0;z-index:1}.bubble>img{width:100%;height:100%;object-fit:cover;border-radius:50%;transition:transform .3s}.bubble:hover,.bubble:focus-within,.bubble.active{z-index:5}.bubble:hover>img,.bubble:focus-within>img{transform:scale(1.05)}.bubble-info{display:none;position:absolute;top:75%;left:50%;width:244px;text-align:left;background:#ffffffed;backdrop-filter:blur(12px);padding:18px;border:1px solid #eee;border-radius:14px;box-shadow:0 5px 22px #25232112;line-height:1.75;font-size:13px}.bubble-info .tag{display:block;width:max-content;margin-bottom:5px}.bubble:hover .bubble-info,.bubble:focus-visible .bubble-info{display:block}.latest{padding-bottom:0}.article-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}.article-card{text-align:left;position:relative}.article-card>button{width:100%;text-align:left}.article-photo{width:100%;aspect-ratio:2.1;object-fit:cover;border-radius:6px}.tag{font-size:10px;background:#efe7e4;color:#846e66;border-radius:3px;padding:2px 6px;letter-spacing:.015em}.article-body{padding-top:12px;padding-bottom:5px}.article-body h3{font-size:14px;font-weight:400;line-height:1.8;margin-top:7px;padding-right:8px}.article-meta{display:flex;justify-content:space-between;align-items:center;margin-top:12px;font-size:11px;letter-spacing:.05em;color:var(--muted)}.article-meta .arrow{color:var(--ink);width:34px;height:34px}.category-button{margin:28px auto 0;width:380px;max-width:100%;background:#f5f5f2ad}.profile-wrap{max-width:1000px;width:calc(100% - 112px);margin:64px auto 52px}.profile-card{display:grid;grid-template-columns:40% 60%;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fdfdfbba;box-shadow:0 7px 30px #30302d04}.profile-visual{position:relative;min-height:420px}.profile-background{height:100%;width:100%;object-fit:cover;object-position:44% center}.portrait{position:absolute;right:-45px;top:64px;border:5px solid #fff;width:114px;height:114px;border-radius:50%;object-fit:cover;box-shadow:0 5px 18px #0000000b}.profile-copy{padding:64px 48px 64px 72px}.profile-copy h2{font-size:22px;letter-spacing:.025em;font-weight:600;line-height:1.7}.profile-copy h2 span{white-space:nowrap}.profession{font-size:12px;color:var(--muted);line-height:1.9;margin-top:6px}.biography{font-size:14px;line-height:2.2;margin-top:24px;letter-spacing:.035em}.accent,.biography a,.profile-links a{color:var(--accent)}.profile-links{display:grid;gap:13px;margin-top:27px;font-size:13px;line-height:1.9}.profile-links a{display:flex;justify-content:space-between;gap:8px}.gi-footer{border-top:1px solid #f0efeb;margin:0 auto;padding:38px 56px 42px;display:flex;align-items:center;justify-content:space-between;gap:40px}.footer-brand{width:220px;flex-shrink:0}.footer-brand img{width:170px}.footer-brand small{display:block;font-size:9px;color:var(--muted);margin-top:14px;white-space:nowrap}.gi-footer nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:14px 22px;font-size:10px;color:#636562}.gi-footer a:hover,.gi-footer button:hover,.text-link:hover{color:var(--accent)}dialog{border:1px solid var(--line);border-radius:22px;padding:28px;max-width:560px;width:calc(100% - 40px);max-height:85vh;color:var(--ink);background:#fffffffa}dialog::backdrop{background:#292d2e45;backdrop-filter:blur(6px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.dialog-top .eyebrow{margin:0}#panel-content h2{font-size:24px;margin-bottom:20px}#panel-content p{font-size:14px;line-height:2}#panel-content input{width:100%;font-size:16px;padding:15px;border:1px solid var(--line);border-radius:9px;margin-bottom:16px}.dialog-list{display:grid;gap:10px}.dialog-list button,.dialog-list a{padding:15px;border:1px solid var(--line);border-radius:9px;text-align:left;line-height:1.7;font-size:14px}.dialog-photo{width:100%;border-radius:8px;margin-bottom:20px}.preview-note{color:var(--muted);margin-top:20px}
@media(min-width:1500px){.hero-content{max-width:1280px}.hero{height:560px}}
@media(max-width:1250px) and (min-width:761px){.hero-content{padding-left:7%;padding-right:7%}.gi-header nav{gap:16px}.brand{width:185px}.gi-header{padding:0 20px}.profile-copy{padding-left:60px;padding-right:30px}.profile-copy h2{font-size:19px}}
@media(max-width:760px){.gi-header{top:0;left:0;right:0;height:78px;padding:0 24px;border-radius:0;background:#ffffffb0}.brand{width:168px}.gi-header nav{display:none}.header-tools{gap:6px}.icon-button{width:40px;height:44px;background:none}.hero{height:510px}.hero-photo{background-image:linear-gradient(180deg,#eef1f4 0%,#eef1f4 40%,#eef1f4aa 65%,#eef1f400 88%),url('assets/hero-keyboard.webp');background-size:cover,auto 310px;background-position:center,right bottom;background-repeat:no-repeat}.hero-content{padding:108px 24px 0}.hero h1{font-size:31px;line-height:1.55;letter-spacing:.09em}.hero-content p{font-size:11px;line-height:2;margin-top:20px;max-width:310px}.desktop{display:none}.hero-cta{width:166px;min-height:50px;font-size:12px;margin-top:23px}.hero-controls{bottom:24px;left:24px;right:24px;color:#494c4c;font-size:10px;gap:11px}.slide-line{background:#7778;margin-right:auto;width:56px}.hero-controls button{color:#49525c;border-color:#49525c70;background:#ffffff32;width:34px;height:34px}.section{width:calc(100% - 48px)}.pickup{padding-top:34px;padding-bottom:36px}.section-heading{margin-bottom:26px;align-items:center}h2{font-size:24px}.eyebrow{font-size:10px;letter-spacing:.17em;margin-bottom:8px}.section-description{font-size:11px;max-width:230px;margin-top:12px}.text-link{font-size:10px;gap:9px;flex-shrink:0}.text-link span{font-size:17px}.bubble-field{height:242px}.bubble{left:var(--mx);top:var(--my);width:var(--ms);height:var(--ms)}.bubble.active .bubble-info{display:block}.bubble-info{position:fixed;top:auto;bottom:24px;left:24px;width:calc(100vw - 48px);font-size:14px;z-index:20;box-shadow:0 4px 30px #0002}.article-grid{grid-template-columns:1fr;gap:0}.article-card{border-bottom:1px solid #efefec;padding:16px 0}.article-card:first-child{padding-top:0}.article-card>button{display:grid;grid-template-columns:105px 1fr;gap:16px;align-items:start}.article-photo{aspect-ratio:1.4;border-radius:5px;margin-top:3px}.article-body{padding:0;position:relative;padding-right:29px;min-height:84px}.article-body h3{font-size:12px;line-height:1.8;margin-top:5px;padding:0}.tag{font-size:9px}.article-meta{font-size:10px;margin-top:7px}.article-meta .arrow{position:absolute;right:-3px;top:33px;width:27px;height:27px;font-size:15px}.category-button{width:100%;margin-top:22px;min-height:52px;font-size:12px}.profile-wrap{width:calc(100% - 40px);margin:48px auto 40px}.profile-card{display:block;border-radius:15px}.profile-visual{min-height:0;height:210px}.profile-background{object-position:center}.portrait{right:calc(50% - 54px);top:auto;bottom:-49px;width:108px;height:108px}.profile-copy{padding:80px 26px 48px}.profile-copy h2{text-align:center;font-size:19px;letter-spacing:0}.profession{text-align:center;font-size:11px;margin-top:8px}.biography{font-size:13px;line-height:2.2;margin-top:28px}.profile-links{margin-top:26px;font-size:12px;gap:15px}.gi-footer{padding:34px 24px 38px;display:block}.footer-brand{width:100%}.footer-brand img{width:165px}.footer-brand small{font-size:9px;white-space:normal}.gi-footer nav{justify-content:flex-start;gap:18px 20px;margin-top:29px;font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important}}

/* 共通の削られた石の線画モチーフ */
.stone-heading{display:flex;align-items:center;gap:12px}
.heading-stone{width:33px;height:33px;flex:0 0 auto;color:#64717b;stroke:currentColor;stroke-width:1;stroke-linejoin:round;stroke-linecap:round}
.profile-copy .stone-heading{gap:10px}
.profile-copy .heading-stone{width:27px;height:27px}
.profile-copy h2 .heading-text{white-space:normal}
@media(max-width:760px){.stone-heading{gap:10px}.heading-stone{width:29px;height:29px}.profile-copy .stone-heading{justify-content:center;align-items:center;gap:8px}.profile-copy .heading-stone{width:24px;height:24px}.profile-copy .heading-text{text-align:center;min-width:0}}

/* 注目記事: 写真だけが小さな楕円軌道を描き、クリック領域と情報は固定 */
.bubble{--orbit-x:7px;--orbit-y:5px;--orbit-speed:12s;--orbit-delay:0s}
.bubble:nth-child(3n){--orbit-x:9px;--orbit-y:6px;--orbit-speed:15s;--orbit-delay:-4s}
.bubble:nth-child(3n + 1){--orbit-x:6px;--orbit-y:8px;--orbit-speed:11s;--orbit-delay:-7s}
.bubble:nth-child(4n){--orbit-speed:17s;--orbit-delay:-2s}
.bubble>img{translate:0 0;transition:transform .3s,translate .45s ease}
.article-card{transform:translateY(0);transition:transform .24s cubic-bezier(.2,.75,.3,1)}
.article-photo{transition:box-shadow .24s ease}
@keyframes gi-orbit{
  0%,100%{translate:var(--orbit-x) 0}
  25%{translate:0 var(--orbit-y)}
  50%{translate:calc(-1 * var(--orbit-x)) 0}
  75%{translate:0 calc(-1 * var(--orbit-y))}
}
@media(hover:hover) and (pointer:fine){
  .bubble-field:hover .bubble>img{animation:gi-orbit var(--orbit-speed) linear var(--orbit-delay) infinite}
  .bubble-field:hover .bubble:nth-child(even)>img{animation-direction:reverse}
  .article-card:hover{transform:translateY(-8px)}
  .article-card:hover .article-photo{box-shadow:0 9px 18px #26313d16}
}
@media(prefers-reduced-motion:reduce){
  .bubble-field:hover .bubble>img{animation:none;translate:0 0}
  .article-card:hover{transform:none}
}

/* 新着記事の識別と、サムネイル付きのページ分割一覧 */
.article-labels{display:flex;align-items:center;flex-wrap:wrap;gap:7px}
.new-badge{display:inline-flex;align-items:center;background:#d45d37;color:#fff;font-size:9px;font-weight:600;letter-spacing:.06em;border-radius:4px;padding:3px 6px;line-height:1.2;white-space:nowrap}
.article-card.is-new .tag{background:#e5eff2;color:#456b7b}
.article-card.is-new .article-meta time{color:#b34929}
.article-list-panel{max-width:700px;width:calc(100% - 40px);height:min(790px,85dvh);max-height:85dvh;overflow:hidden}
.article-list-panel[open]{display:flex;flex-direction:column}
.article-list-panel .dialog-top{flex-shrink:0;margin-bottom:12px}
.article-list-panel #panel-content{display:flex;flex-direction:column;min-height:0;flex:1}
.list-heading{display:flex;align-items:baseline;justify-content:space-between;gap:16px;flex-shrink:0;margin-bottom:18px}
#panel-content .list-heading h2{margin-bottom:0}
#panel-content .list-count{font-size:11px;color:var(--muted);white-space:nowrap}
.list-scroll{overflow-y:auto;overscroll-behavior:contain;min-height:0;flex:1;padding:5px 7px 5px 3px;scrollbar-gutter:stable;-webkit-overflow-scrolling:touch}
.article-dialog-list{gap:10px}
.dialog-list .dialog-article{display:grid;grid-template-columns:100px minmax(0,1fr) 20px;gap:16px;align-items:center;padding:12px;border-color:#e9eaE7;background:#fff;min-height:104px}
.dialog-article>img{width:100%;height:78px;object-fit:cover;border-radius:5px}
.dialog-article-copy{display:grid;gap:7px;min-width:0}
.dialog-article-title{font-size:13px;line-height:1.8}
.dialog-article-copy time{font-size:10px;letter-spacing:.04em;color:var(--muted)}
.dialog-article-arrow{color:var(--muted);font-size:17px}
.pagination{display:flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;padding-top:18px}
.pagination button{width:38px;height:38px;border:1px solid var(--line);border-radius:50%;font-size:12px}
.pagination button[aria-current="page"]{background:#496575;color:#fff;border-color:#496575}
.pagination button:disabled{opacity:.3;cursor:default}
#panel-content .list-demo-note{flex-shrink:0;margin-top:12px;text-align:center;font-size:10px;color:var(--muted)}
.empty-list{padding:20px 5px}
.list-back{display:block;font-size:12px;margin-bottom:18px;color:var(--accent)}
@media(max-width:760px){
  .article-card>button{grid-template-columns:105px minmax(0,1fr);gap:16px;align-items:start;min-height:84px}
  .article-card .article-photo{width:105px;aspect-ratio:auto;height:84px;min-height:0;max-height:84px;margin-top:0;object-fit:cover;align-self:start}
  .article-body{height:84px;min-height:0;min-width:0;display:grid;grid-template-rows:16px 40px 14px;row-gap:7px;padding:0 29px 0 0}
  .article-labels{height:16px;flex-wrap:nowrap;gap:6px;white-space:nowrap}
  .article-body .tag{font-size:9px;line-height:12px;padding:1px 5px}
  .article-body h3{font-size:12px;font-weight:400;line-height:20px;height:40px;max-height:40px;margin:0;padding:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
  .article-meta{font-size:10px;line-height:14px;height:14px;margin:0;padding:0;align-items:center}
  .article-meta .arrow{top:calc(50% - 14px)}
  .new-badge{font-size:8px;line-height:12px;padding:2px 5px}
  .article-list-panel{padding:20px 16px;max-height:88dvh;height:88dvh;width:calc(100% - 24px)}
  .list-heading{display:block;margin-bottom:12px}
  #panel-content .list-count{margin-top:7px}
  .dialog-list .dialog-article{grid-template-columns:76px minmax(0,1fr) 14px;gap:10px;padding:10px;min-height:100px}
  .dialog-article>img{height:82px}
  .dialog-article-title{font-size:11px;line-height:1.85}
  .dialog-article-copy time{font-size:9px}
  .pagination{padding-top:14px}
}
html:has(dialog[open]){overflow:hidden}

/* 新着記事のメール登録 */
.newsletter-wrap{width:calc(100% - 112px);max-width:1000px;margin:0 auto 64px}
.newsletter-card{padding:38px 40px;border:1px solid #dde4e7;border-radius:18px;background:linear-gradient(135deg,#f5f8fa,#fcfcfa);display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:center}
.newsletter-copy h2{font-size:22px;letter-spacing:.03em}
.newsletter-copy>p:last-child{margin-top:18px;font-size:12px;line-height:2;color:#636f75}
.newsletter-form>label{display:block;font-size:11px;margin-bottom:9px;letter-spacing:.05em}
.newsletter-input-row{display:flex;gap:8px}
.newsletter-input-row input{min-width:0;flex:1;width:100%;border:1px solid #d9e0e4;border-radius:8px;padding:13px 12px;font-size:14px;color:var(--ink);background:#fff}
.newsletter-submit{border-radius:8px;background:#496575;color:#fff;padding:13px 15px;font-size:12px;display:flex;align-items:center;gap:12px;white-space:nowrap}
.newsletter-submit:hover{background:#344f60}.newsletter-submit:disabled{opacity:.55;cursor:wait}
.newsletter-privacy{font-size:10px;color:var(--muted);line-height:1.8;margin-top:12px}
.newsletter-privacy a{color:var(--accent);display:inline-block;margin-left:3px}
.newsletter-preview-note{font-size:10px;color:var(--muted);line-height:1.8;margin-top:8px}
#newsletter-status{font-size:12px;line-height:1.8;margin-top:12px}#newsletter-status:empty{display:none}#newsletter-status.success{color:#356353}#newsletter-status.error{color:#b34929}
.newsletter-honeypot{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(100%);pointer-events:none}
@media(max-width:900px){.newsletter-card{grid-template-columns:1fr;gap:24px}}
@media(max-width:760px){.newsletter-wrap{width:calc(100% - 40px);margin-bottom:40px}.newsletter-card{padding:28px 24px;border-radius:15px;gap:24px}.newsletter-copy h2{font-size:19px;gap:8px}.newsletter-copy .heading-stone{width:25px;height:25px}.newsletter-copy>p:last-child{font-size:11px;margin-top:16px}.newsletter-input-row{flex-direction:column;gap:10px}.newsletter-input-row input{font-size:16px;min-height:48px}.newsletter-submit{justify-content:center;min-height:48px}.newsletter-privacy,.newsletter-preview-note{font-size:10px}}

/* キャッチ: 各行を両端揃え、句点は行幅の外にぶら下げる */
.hero h1{width:7em;letter-spacing:0}
.catch-line{display:flex;justify-content:space-between;white-space:nowrap}
.catch-line>span{position:relative;flex:0 0 1em;text-align:center}
.catch-period{position:absolute;left:100%;top:0;width:1em;text-align:left}
@media(min-width:761px){.category-button{display:none}}

/* PCプロフィールをコンパクトに */
@media(min-width:761px){
 .profile-wrap{max-width:900px;margin:48px auto 40px}
 .profile-card{grid-template-columns:34% 66%;border-radius:14px}
 .profile-visual{min-height:300px}
 .portrait{width:92px;height:92px;right:-34px;top:36px;border-width:4px}
 .profile-copy{padding:32px 34px 32px 56px}
 .profile-copy h2{font-size:19px}
 .profession{font-size:11px;margin-top:4px}
 .biography{font-size:12px;line-height:2;margin-top:16px}
 .profile-links{font-size:11px;line-height:1.8;gap:10px;margin-top:18px}
}
