:root{--cream:#faf8f3;--cream-deep:#f2ede1;--paper:#fff;--line:#e4e0d4;--ink:#242019;--ink-soft:#5c5647;--mustard:#c1893f;--mustard-deep:#a56f2c;--teal:#4c8f80;--teal-deep:#376b60;--badge-bg:#efe0c2;--badge-ink:#7a5a24;--shadow:0 4px 14px #2820100f;--shadow-hover:0 6px 22px #1414141c;--sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic Medium","Yu Gothic","游ゴシック",system-ui,sans-serif;--serif:var(--sans);--mono:"SFMono-Regular",Consolas,"Yu Gothic","游ゴシック",Menlo,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--paper);color:var(--ink);font-family:var(--sans);letter-spacing:.045em;font-feature-settings:"palt" 1;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-weight:400;line-height:1.95}p{text-wrap:pretty;line-break:strict;overflow-wrap:break-word}h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);letter-spacing:.08em;font-feature-settings:"palt" 1;text-wrap:balance;line-break:strict;margin:0 0 .6em;font-weight:600;line-height:1.55}a{color:var(--teal-deep)}img{max-width:100%}.wrap{max-width:1080px;margin:0 auto;padding:0 24px}.side-nav{z-index:40;flex-direction:column;gap:18px;width:104px;display:none;position:fixed;top:130px;left:14px}.side-nav a{letter-spacing:.06em;color:var(--ink-soft);font-size:.72rem;font-family:var(--serif);border-left:2px solid var(--line);padding:2px 0 2px 12px;line-height:1.4;text-decoration:none;transition:color .15s,border-color .15s;display:block}.side-nav a.active{color:var(--mustard-deep);border-left-color:var(--mustard-deep);font-weight:700}@media (width>=900px){.side-nav{display:flex}body{padding-left:120px}}header.site{z-index:50;backdrop-filter:blur(6px);border-bottom:1px solid var(--line);background:#ffffffeb;position:sticky;top:0}.header-inner{justify-content:space-between;align-items:center;max-width:1080px;margin:0 auto;padding:16px 24px;display:flex}.logo{font-family:var(--serif);letter-spacing:.02em;color:var(--ink);align-items:center;gap:10px;font-size:1.35rem;font-weight:700;text-decoration:none;display:flex}.logo img{width:auto;height:34px;display:block}nav.main-nav{gap:28px;display:flex}nav.main-nav a{color:var(--ink-soft);letter-spacing:.03em;white-space:nowrap;font-size:.95rem;text-decoration:none}nav.main-nav a:hover{color:var(--mustard-deep)}.hamburger{cursor:pointer;background:0 0;border:none;flex-direction:column;gap:5px;padding:6px;display:none}.hamburger span{background:var(--ink);width:24px;height:2px;display:block}@media (width<=899px){nav.main-nav{background:var(--paper);border-bottom:1px solid var(--line);box-shadow:var(--shadow);flex-direction:column;gap:0;display:none;position:absolute;top:100%;left:0;right:0}nav.main-nav.open{display:flex}nav.main-nav a{border-top:1px solid var(--line);padding:14px 24px}.hamburger{display:flex}}.hero{border-bottom:1px solid var(--line);padding:72px 0 56px}.hero .eyebrow{letter-spacing:.12em;color:var(--mustard-deep);border:1px solid var(--mustard-deep);border-radius:999px;margin-bottom:22px;padding:4px 14px;font-size:.8rem;display:inline-block}.hero h1{margin-bottom:.5em;font-size:2.4rem}.hero .hero-head{flex-wrap:wrap;align-items:baseline;gap:0 1.2em;margin-bottom:0;display:flex}.hero .hero-head h1{margin-bottom:.5em}.hero .tagline{letter-spacing:.08em;color:var(--ink-soft);font-size:.9rem;font-style:italic}.hero p.lead{max-width:46em;color:var(--ink-soft);margin:0;font-size:1.08rem}.facts{border-top:1px solid var(--line);flex-direction:column;max-width:640px;margin:0;display:flex}.facts div{border-bottom:1px solid var(--line);padding:14px 0}.facts dt{color:var(--ink-soft);letter-spacing:.05em;margin-bottom:4px;font-size:.78rem}.facts dd{margin:0;font-weight:600}@media (width<=700px){.hero{padding:48px 0 40px}.hero h1{font-size:1.6rem}}section{padding:64px 0}section+section{border-top:1px solid var(--line)}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:36px;padding-bottom:14px;display:flex}.section-head h2{font-size:1.7rem}.section-head .num{font-family:var(--serif);color:var(--mustard-deep);letter-spacing:.15em;font-size:.85rem}#shaderartist-detail .section-head{border-bottom:3px solid var(--mustard)}#shaderartist-detail .section-head .num{color:var(--mustard-deep)}#shaderartist-detail .detail-block{border-left:4px solid var(--mustard)}#shaderartist-detail .detail-block h4{color:var(--mustard-deep)}#illustrator-detail .section-head{border-bottom:3px solid var(--teal)}#illustrator-detail .section-head .num{color:var(--teal-deep)}#illustrator-detail .detail-block{border-left:4px solid var(--teal)}#illustrator-detail .detail-block h4{color:var(--teal-deep)}.people-grid{grid-template-columns:1fr 1fr;gap:32px;display:grid}@media (width<=760px){.people-grid{grid-template-columns:1fr}}.person-card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;flex-direction:column;padding:36px 32px;transition:box-shadow .15s,transform .15s;display:flex}.person-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.person-card.mustard{border-top:3px solid var(--mustard)}.person-card.teal{border-top:3px solid var(--teal)}.person-card .role-badge{background:var(--badge-bg);color:var(--badge-ink);letter-spacing:.05em;border-radius:999px;align-self:flex-start;margin-bottom:18px;padding:5px 12px;font-size:.78rem}.person-card h3{margin-bottom:.2em;font-size:1.5rem}.person-card .name-en{color:var(--ink-soft);letter-spacing:.04em;margin-bottom:18px;font-size:.85rem}.person-card p{color:var(--ink-soft)}.person-card ul.tags{flex-wrap:wrap;gap:8px;margin:18px 0 26px;padding:0;list-style:none;display:flex}.person-card ul.tags li{background:var(--cream-deep);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:4px 11px;font-size:.78rem}.cta-btn{text-align:center;background:var(--mustard);color:#fff;letter-spacing:.03em;border-radius:8px;margin-top:auto;padding:14px 26px;font-weight:700;text-decoration:none;transition:transform .15s,background .15s;display:inline-block;box-shadow:0 8px 18px #a16e2c47}.cta-btn:hover{background:var(--mustard-deep);transform:translateY(-2px)}.cta-btn.alt{background:var(--teal);box-shadow:0 8px 18px #376b6047}.cta-btn.alt:hover{background:var(--teal-deep)}ul.timeline{border-top:none;margin:0;padding:0 0 0 30px;list-style:none;position:relative}ul.timeline:before{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:8px;left:9px}ul.timeline>li{border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:baseline;gap:20px;padding:18px 0;display:flex;position:relative}ul.timeline>li:before{content:"";background:var(--mustard);width:11px;height:11px;box-shadow:0 0 0 3px var(--paper);border-radius:50%;position:absolute;top:26px;left:-28px}.achv-list .yr{width:64px;font-family:var(--serif);color:var(--mustard-deep);flex:none;font-weight:700}.achv-list .body .achv-title{flex-wrap:wrap;align-items:center;gap:6px 48px;margin-bottom:2px;display:flex}.achv-list .body .achv-title strong{margin-bottom:0}.achv-list .body .achv-logo{width:auto;height:26px;display:block}.achv-list .body strong{margin-bottom:2px;font-size:1.05rem;display:block}.achv-list .body span{color:var(--ink-soft);font-size:.9rem}.achv-list .body ul.roles{color:var(--ink);margin:4px 0 0 1.2em;padding:0;font-size:.95rem;line-height:1.7;list-style:outside}.achv-list .body ul.tasks{color:var(--ink-soft);margin:0 0 0 1.4em;padding:0;font-size:.9rem;line-height:1.7;list-style:circle}.achv-list .body .achv-title a.url{font-size:.9rem}ul.career-list.timeline>li{display:block}.career-list h3{margin-bottom:.2em;font-size:1.1rem}.career-list .period{font-family:var(--serif);color:var(--mustard-deep);margin-bottom:10px;font-size:.85rem;display:block}.career-list ul.roles{color:var(--ink);margin:0 0 0 1.2em;padding:0;font-size:.95rem;line-height:1.7;list-style:outside}.career-list ul.tasks{color:var(--ink-soft);margin:0 0 0 1.4em;padding:0;font-size:.9rem;line-height:1.7;list-style:circle}.career-list li li{border:none;margin:0;padding:0}.career-list ul.roles.titles{margin-top:6px}.detail-block{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;margin-bottom:32px;padding:36px 40px 44px;transition:box-shadow .15s}.detail-block:hover{box-shadow:var(--shadow-hover)}@media (width<=600px){.detail-block{padding:26px 22px 32px}}.detail-block>p:first-child{margin-top:0}.detail-block h4{letter-spacing:.1em;text-transform:uppercase;margin:0 0 18px;font-size:.82rem}.skill-grid{grid-template-columns:1fr 1fr;gap:28px 36px;display:grid}@media (width<=700px){.skill-grid{grid-template-columns:1fr}}.skill-item{border-top:1px solid var(--line);padding-top:20px}.skill-item h3{margin-bottom:.5em;font-size:1.1rem}.skill-item ul{color:var(--ink-soft);margin:0;padding-left:1.2em}.skill-item li{margin-bottom:6px}.skill-item li a{overflow-wrap:break-word;word-break:break-word}.skill-item.has-fig{grid-column:1/-1}@media (width>=701px){.skill-item.has-fig{align-items:flex-start;gap:32px;display:flex}.skill-item.has-fig .item-text{flex:1;min-width:0}.skill-item.has-fig .fig{flex:0 0 260px;margin:0}}.badge-row{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.badge-row .badge{margin-bottom:0}.article-feature{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);color:inherit;border-radius:10px;flex-direction:column;margin-bottom:28px;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.article-feature:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.article-feature .thumb-placeholder{height:280px}.article-feature .card-body{padding:32px 36px 36px}.article-feature .card-body h3{font-size:1.5rem}@media (width>=701px){.article-feature{flex-direction:row}.article-feature .thumb-placeholder{flex:0 0 46%;height:auto}.article-feature .card-body{flex:1}}.article-grid{grid-template-columns:repeat(3,1fr);gap:28px;margin-bottom:28px;display:grid}@media (width<=900px){.article-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.article-grid{grid-template-columns:1fr}}.article-card{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);color:inherit;border-radius:10px;flex-direction:column;text-decoration:none;transition:box-shadow .15s,transform .15s;display:flex;overflow:hidden}.article-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.thumb-placeholder{border-bottom:1px dashed var(--line);background:repeating-linear-gradient(135deg,var(--cream-deep),var(--cream-deep) 10px,var(--cream) 10px,var(--cream) 20px);height:120px;color:var(--ink-soft);letter-spacing:.05em;justify-content:center;align-items:center;font-size:.78rem;display:flex}.article-card .card-body{flex-direction:column;flex:1;padding:20px 22px 24px;display:flex}.badge{background:var(--badge-bg);color:var(--badge-ink);letter-spacing:.04em;border-radius:999px;align-self:flex-start;margin-bottom:12px;padding:3px 10px;font-size:.72rem;display:inline-block}.article-card time,.article-feature time{color:var(--ink-soft);margin-bottom:6px;font-size:.78rem}.article-card h3{margin-bottom:.4em;font-size:1.08rem}.article-card p,.article-feature p{color:var(--ink-soft);margin:0;font-size:.9rem}.article-compact-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.article-compact-list li{border-bottom:1px solid var(--line)}.article-compact-list li a,.article-compact-list li .row{color:inherit;align-items:baseline;gap:18px;padding:14px 4px;text-decoration:none;display:flex}.article-compact-list li a:hover h3,.article-compact-list li a:hover time{color:var(--mustard-deep)}.article-compact-list time{width:96px;color:var(--ink-soft);flex:none;font-size:.8rem;transition:color .15s}.article-compact-list h3{font-size:.95rem;font-weight:400;font-family:var(--sans);letter-spacing:.03em;margin:0;transition:color .15s}.article-sample{background:var(--paper);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:10px;padding:0;overflow:hidden}.article-sample .hero-figure{border-bottom:1px dashed var(--line);background:repeating-linear-gradient(135deg,var(--cream-deep),var(--cream-deep) 14px,var(--cream) 14px,var(--cream) 28px);height:220px;color:var(--ink-soft);text-align:center;justify-content:center;align-items:center;padding:20px;font-size:.9rem;display:flex}.article-sample .content{padding:40px 44px 48px}@media (width<=600px){.article-sample .content{padding:28px 22px 34px}}.article-sample .byline{color:var(--ink-soft);align-items:center;gap:12px;margin-bottom:18px;font-size:.85rem;display:flex}.article-sample .byline .dot{background:var(--ink-soft);border-radius:50%;width:5px;height:5px}.article-sample h2{margin-bottom:.3em;font-size:1.9rem}.article-sample h3{margin-top:2em;font-size:1.25rem}.article-sample p,.article-sample li{color:var(--ink-soft)}.article-sample code{background:var(--cream-deep);color:var(--ink);border-radius:6px;padding:2px 7px;font-size:.88em}.cvar-block{background:var(--cream-deep);border:1px solid var(--line);font-family:var(--mono);color:var(--ink);border-radius:8px;margin:14px 0;padding:16px 20px;font-size:.9rem}.fig{border:1px dashed var(--line);background:var(--cream-deep);text-align:center;color:var(--ink-soft);border-radius:8px;margin:24px 0;padding:34px 20px;font-size:.88rem}hr.divider{border:none;border-top:1px solid var(--line);margin:36px 0}.article-body h2{margin-top:2em;font-size:1.25rem}.article-body h3{margin-top:1.6em;font-size:1.1rem}.article-body h4{margin-top:1.4em;font-size:1rem}.article-body p,.article-body li{color:var(--ink-soft)}.article-body ul,.article-body ol{padding-left:1.2em}.article-body a{color:var(--teal-deep)}.article-body code{background:var(--cream-deep);color:var(--ink);border-radius:6px;padding:2px 7px;font-size:.88em}.article-body pre{background:var(--cream-deep);border:1px solid var(--line);font-family:var(--mono);color:var(--ink);border-radius:8px;margin:14px 0;padding:16px 20px;font-size:.9rem;overflow-x:auto}.article-body pre code{background:0 0;border-radius:0;padding:0;font-size:1em}.article-body img{border-radius:8px;margin:20px 0;display:block}.article-body hr{border:none;border-top:1px solid var(--line);margin:36px 0}.article-body blockquote{border-left:3px solid var(--line);color:var(--ink-soft);margin:20px 0;padding:2px 20px}.article-body table{border-collapse:collapse;width:100%;margin:20px 0}.article-body th,.article-body td{border:1px solid var(--line);text-align:left;color:var(--ink-soft);padding:8px 12px}.article-nav{flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:32px;display:flex}.article-nav a{color:var(--ink-soft);font-size:.9rem;text-decoration:none}.article-nav a:hover{color:var(--mustard-deep)}.article-back{color:var(--ink-soft);margin-top:24px;font-size:.9rem;text-decoration:none;display:block}.article-back:hover{color:var(--mustard-deep)}.pagination{border-top:1px solid var(--line);justify-content:center;align-items:center;gap:24px;margin-top:12px;padding-top:24px;display:flex}.pagination a,.pagination span{letter-spacing:.03em;font-size:.85rem}.pagination a{color:var(--ink-soft);text-decoration:none}.pagination a:hover{color:var(--mustard-deep)}.pagination .disabled{color:var(--line)}.pagination .pagination-status{color:var(--ink-soft);font-family:var(--serif)}ul.taxonomy-list{flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none;display:flex}ul.taxonomy-list li a{background:var(--cream-deep);border:1px solid var(--line);color:var(--ink-soft);border-radius:999px;padding:6px 14px;font-size:.85rem;text-decoration:none;display:inline-block}ul.taxonomy-list li a:hover{color:var(--mustard-deep);border-color:var(--mustard-deep)}ul.taxonomy-list li a .count{color:var(--ink-soft);margin-left:4px;font-size:.85em}footer.site{background:var(--cream-deep);border-top:1px solid var(--line);color:var(--ink-soft);padding:52px 0 32px;font-size:.9rem}footer.site .foot-grid{grid-template-columns:2fr 1fr 1fr;gap:32px;margin-bottom:36px;display:grid}@media (width<=700px){footer.site .foot-grid{grid-template-columns:1fr}}footer.site h4{color:var(--ink);margin-bottom:.8em;font-size:1rem}footer.site dl{margin:0}footer.site dt{color:var(--ink-soft);margin-bottom:2px;font-size:.78rem}footer.site dd{color:var(--ink);margin:0 0 14px;font-weight:600}footer.site ul{margin:0;padding:0;list-style:none}footer.site ul li{margin-bottom:8px}footer.site ul a{color:var(--ink-soft);text-decoration:none}footer.site ul a:hover{color:var(--mustard-deep)}.copyright{border-top:1px solid var(--line);text-align:center;padding-top:20px;font-size:.8rem}
