@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;800&family=Outfit:wght@400;500;600;700&display=swap";
.update-source{letter-spacing:.13em;color:#527b9e;margin-bottom:5px;font:600 10px Outfit;display:block}.article-age-notice{color:#65420a;background:#fff4df;border-left:4px solid #bb7a21;margin:26px 0;padding:16px 18px;font-size:14px;line-height:1.75}.lead,.intro h2,.contact h2,.inner-page h1{white-space:pre-line}.related-links{margin:34px 0 48px}.related-links a{border:1px solid var(--line);max-width:780px;color:var(--blue);justify-content:space-between;align-items:center;gap:20px;margin-top:9px;padding:15px 18px;font-size:14px;display:flex}.related-links a:hover{background:var(--pale)}.all-works-link{text-align:right;margin:38px 0 0}.mermaid-diagram{border:1px solid var(--line);background:#fff;margin:28px 0;padding:20px;overflow:auto}.mermaid-diagram svg{max-width:100%;height:auto}.tech-article table{border-collapse:collapse;width:100%;margin:24px 0;font-size:14px}.tech-article th,.tech-article td{border:1px solid var(--line);text-align:left;padding:11px 13px}.tech-article th{color:var(--navy);background:#eaf1f4}.tech-article code{background:#eaf1f4;padding:2px 5px;font:12px monospace}.tech-article pre{color:#fff;background:#071d42;padding:16px;overflow:auto}.tech-article pre code{color:inherit;background:0 0;padding:0}.tech-article .article-image-link{cursor:zoom-in;width:fit-content;max-width:100%;margin:28px auto;display:block}.tech-article .article-image{object-fit:contain;border:1px solid var(--line);width:auto;max-width:min(100%,680px);height:auto;max-height:480px;display:block;box-shadow:0 10px 28px #071d421f}@media (max-width:720px){html,body{width:100%;max-width:100%;overflow-x:clip}body>main{width:100%;min-width:0;max-width:100%}body{--mobile-gutter:clamp(12px, 4vw, 28px)}body .header{height:64px;padding:0 var(--mobile-gutter)}body .header .brand{letter-spacing:.07em;gap:8px;min-width:0;font-size:11px}body .header .brand span{font-size:22px}body .menu{color:var(--navy);padding:10px 0 10px 14px}body .header nav{padding:20px var(--mobile-gutter) 24px;top:63px;box-shadow:0 10px 18px #071d4214}body .header nav a{width:100%;padding:5px 0}body .hero{min-height:250px}body .hello{font-size:clamp(58px,20vw,100px)}body .section{padding:64px var(--mobile-gutter)}body .section h2{font-size:clamp(29px,9vw,39px)}body .lead{font-size:15px;line-height:1.95}body .news-list a{padding:18px 0;font-size:14px}body .news-list span{overflow-wrap:anywhere}body .card{min-height:280px;padding:22px}body .card strong{overflow-wrap:anywhere;font-size:25px;line-height:1.35}body .card-art{width:220px;height:220px}body .all-works-link{text-align:left;margin-top:30px}body .contact{padding:65px var(--mobile-gutter)}body .contact h2{font-size:clamp(31px,10vw,43px)}body .contact-mail{overflow-wrap:anywhere;font-size:17px}body footer{padding:44px var(--mobile-gutter) 24px;gap:36px}body .footer-links{gap:42px}body .inner-page{padding:24px var(--mobile-gutter) 68px}body .inner-page>.brand{margin-bottom:58px;font-size:12px}body .inner-page>.section-kicker{margin-bottom:12px;font-size:10px}body .inner-page h1{letter-spacing:-.045em;overflow-wrap:anywhere;margin-bottom:20px;font-size:clamp(32px,10vw,43px);line-height:1.25}body .inner-page .lead{margin:20px 0}body .career,body .work-page-list{margin:40px 0}body .career{border-top:1px solid var(--line);grid-template-columns:1fr}body .career b{border-bottom:0;padding:16px 0 4px}body .career p{padding:4px 0 17px;font-size:14px;line-height:1.8}body .work-page-list article{padding:25px 0}body .work-page-list h2{overflow-wrap:anywhere;font-size:23px;line-height:1.4}body .work-page-list p{font-size:14px;line-height:1.8}body .work-page-list em{margin:0 5px 6px 0;display:inline-block}body .resource-section{margin:46px 0}body .resource-section>h2{font-size:24px;line-height:1.4}body .resource-card{grid-template-columns:1fr 20px;gap:7px 12px;padding:18px 0}body .resource-card span{grid-column:1;font-size:11px}body .resource-card strong{overflow-wrap:anywhere;grid-column:1;font-size:15px;line-height:1.6}body .resource-card p{grid-column:1;font-size:13px;line-height:1.75}body .resource-card b{grid-area:1/2/span 3;align-self:center}body .presentation{gap:16px;padding:20px 0}body .presentation h3{font-size:21px}body .presentation iframe{height:210px}.inner-page.project-detail{padding:24px var(--mobile-gutter) 68px;overflow-x:clip}.inner-page.project-detail>.brand{margin-bottom:58px;font-size:12px}.project-detail>.section-kicker{letter-spacing:.13em;margin-bottom:12px;font-size:10px}.inner-page.project-detail h1{letter-spacing:-.045em;overflow-wrap:anywhere;margin-bottom:20px;font-size:clamp(32px,10vw,43px);line-height:1.25}.project-detail .lead{margin:20px 0;font-size:15px;line-height:1.9}.project-detail .article-age-notice{margin:18px 0;padding:13px 14px;font-size:13px;line-height:1.7}.project-detail .project-tags{flex-wrap:wrap;gap:7px;display:flex}.project-detail .project-tags em{margin:0;padding:7px 8px;font-size:11px;display:inline-block}.project-detail .related-links{margin:32px 0 40px}.project-detail .related-links a{overflow-wrap:anywhere;align-items:flex-start;padding:13px 14px;font-size:13px;line-height:1.55}.project-detail .related-links a b{flex:none;padding-top:1px}.project-detail .tech-article{border-left-width:3px;margin:46px 0;padding:28px 18px}.project-detail .tech-article h2{overflow-wrap:anywhere;font-size:24px;line-height:1.4}.project-detail .tech-article p:not(.section-kicker){overflow-wrap:anywhere;font-size:14px;line-height:1.95}.project-detail .tech-article table{white-space:nowrap;-webkit-overflow-scrolling:touch;width:100%;margin:20px 0;font-size:12px;display:block;overflow-x:auto}.project-detail .tech-article th,.project-detail .tech-article td{padding:9px 10px}.project-detail .tech-article pre{-webkit-overflow-scrolling:touch;margin:20px 0;padding:14px;font-size:12px;line-height:1.65}.project-detail .tech-article code{font-size:11px}.project-detail .mermaid-diagram{-webkit-overflow-scrolling:touch;margin:20px 0;padding:12px}.project-detail .article-image-link{margin:22px auto}.project-detail .article-image{max-height:360px}}.inner-page{background:#f8fafb;min-height:100vh;padding:38px 12vw 110px}.inner-page>.brand{margin-bottom:115px}.inner-page>.section-kicker{margin-bottom:16px}.inner-page h1{color:var(--navy);margin-bottom:28px;font-size:clamp(46px,6vw,76px)}.career,.work-page-list{border-top:1px solid var(--line);max-width:780px;margin:60px 0}.career{grid-template-columns:180px 1fr;gap:0;display:grid}.career b,.career p{border-bottom:1px solid var(--line);margin:0;padding:22px 0}.career b{letter-spacing:.1em;color:var(--blue);font:600 12px Outfit}.work-page-list article{border-bottom:1px solid var(--line);padding:30px 0}.work-page-list h2{color:var(--navy);margin:0;font:600 28px Outfit}.work-page-list p{line-height:1.8}.work-page-list em{background:#dcebef;margin-right:6px;padding:6px;font:500 11px Outfit}.pixel-hero{background:#122d52}.slide-fallback,.slide-scene,.slide-backdrop,.slide{width:100%;height:100%;position:absolute;inset:0}.slide-scene{opacity:0;transition:opacity 1s;overflow:hidden}.slide-scene.active{opacity:1}.slide-backdrop{filter:blur(22px)brightness(.5);background-position:50%;background-size:cover;transform:scale(1.08)}.slide{object-fit:contain;object-position:center}.slide-fallback{background:linear-gradient(135deg,#071d42,#15576a 50%,#d5a263)}.hello{z-index:2;color:#fff;letter-spacing:-.08em;text-shadow:0 3px 30px #00000059;pointer-events:none;place-items:center;font:700 clamp(72px,15vw,200px) Outfit;display:grid;position:absolute;inset:0}.news-under-about{padding-top:0}.tech-article{border-left:5px solid var(--teal);background:#fff;max-width:780px;margin:75px 0;padding:48px}.tech-article h2{color:var(--navy);font-size:30px}.tech-article p:not(.section-kicker){white-space:pre-wrap;line-height:2}.project-tags em{background:#dcebef;margin-right:8px;padding:8px;font:500 12px Outfit}.pixel-hero:after{display:none}.resource-section{max-width:840px;margin:65px 0}.resource-section>h2{color:var(--navy);border-bottom:2px solid var(--navy);padding-bottom:14px;font-size:29px}.resource-card{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr 22px;gap:14px;padding:22px 0;display:grid}.resource-card span{color:#64809a;font:500 12px Outfit}.resource-card strong{font-size:17px}.resource-card p{grid-column:2;margin:0;line-height:1.7}.resource-card b{grid-area:1/3;font-size:18px}.presentation{border-bottom:1px solid var(--line);grid-template-columns:1fr 1.2fr;gap:28px;padding:26px 0;display:grid}.presentation span{color:#64809a;font:500 12px Outfit}.presentation h3{margin:9px 0;font-size:24px}.presentation p{line-height:1.8}.presentation iframe{border:1px solid var(--line);background:#fff;width:100%;height:260px}@media (max-width:720px){.presentation{grid-template-columns:1fr}.presentation iframe{height:220px}}:root{--navy:#071d42;--blue:#103f75;--ink:#182a40;--pale:#eff4f7;--teal:#86d0c4;--line:#cad5df}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--ink);margin:0;font-family:Noto Sans JP,sans-serif}a{color:inherit;text-decoration:none}.header{z-index:10;background:#fff;border-bottom:1px solid #e9eef1;justify-content:space-between;align-items:center;height:84px;padding:0 5vw;display:flex;position:sticky;top:0}.brand{letter-spacing:.1em;color:var(--navy);align-items:center;gap:12px;font:600 14px Outfit;display:flex}.brand span,.footer-brand span{letter-spacing:-3px;font-size:24px;font-weight:700}.header nav{letter-spacing:.13em;align-items:center;gap:28px;font:500 12px Outfit;display:flex}.admin-link{border:1px solid var(--navy);padding:10px 13px}.menu{letter-spacing:.12em;background:0 0;border:0;font:600 12px Outfit;display:none}.hero{background:var(--navy);color:#fff;height:680px;position:relative;overflow:hidden}.hero-grid{opacity:.9;background:linear-gradient(120deg,#0000 48%,#1b4b7d 48.1%,#0000 48.3%),linear-gradient(45deg,#0000 20%,#86d0c433 20.1%,#0000 20.4%);position:absolute;inset:0}.hero:after{content:"";border:1px solid #6d9bc0;border-radius:50%;width:54vw;height:54vw;position:absolute;top:-20vw;right:-12vw;box-shadow:0 0 0 70px #36618e38,0 0 0 140px #36618e24}.hero-copy{z-index:1;padding:125px 11vw;position:relative}.eyebrow,.section-kicker{letter-spacing:.17em;color:#507aa6;margin:0 0 20px;font:600 11px Outfit}.hero .eyebrow{color:var(--teal)}h1{letter-spacing:-.06em;margin:0 0 24px;font-size:clamp(46px,5.3vw,78px);font-weight:800;line-height:1.25}.hero-copy>p:not(.eyebrow){letter-spacing:.05em;font:400 15px/1.8 Outfit}.round-link{letter-spacing:.12em;align-items:center;gap:16px;margin-top:28px;font:600 12px Outfit;display:inline-flex}.round-link b{border:1px solid #8eb1cd;border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.hero-mark{z-index:1;color:var(--teal);font:600 22px Outfit;position:absolute;bottom:42px;right:5vw}.hero-mark i{letter-spacing:.13em;color:#b4c8da;font-size:9px;font-style:normal;line-height:1.3}.section{padding:112px 9vw}.intro{grid-template-columns:26% 1fr;gap:5vw;display:grid}.section h2{letter-spacing:-.05em;color:var(--navy);margin:0;font-size:clamp(32px,4vw,53px);font-weight:800;line-height:1.4}.lead{max-width:650px;margin:28px 0;font-size:16px;line-height:2.15}.text-link{color:var(--blue);border-bottom:1px solid var(--blue);padding-bottom:7px;font:600 13px Noto Sans JP}.numbers{background:var(--pale);grid-template-columns:repeat(4,1fr);gap:20px;padding:62px 9vw;display:grid}.numbers div{border-left:1px solid #aebdca;padding-left:22px}.numbers b{color:var(--navy);letter-spacing:-.08em;font:600 clamp(45px,5vw,70px) Outfit;display:block}.numbers span{letter-spacing:.13em;color:#5d7185;font:600 9px Outfit}.works{background:#fff}.section-head{justify-content:space-between;align-items:end;margin-bottom:45px;display:flex}.cards{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.card{text-align:left;color:#fff;cursor:pointer;border:0;flex-direction:column;align-items:flex-start;min-height:410px;padding:26px;display:flex;position:relative;overflow:hidden}.c0{background:#123e70}.c1{background:#165c65}.c2{background:#826a4f}.card-art{border:1px solid #ffffff73;border-radius:48% 52% 63% 37%/52% 35% 65% 48%;width:260px;height:260px;position:absolute;top:66px;right:-42px;transform:rotate(30deg)}.c1 .card-art{background:#ffffff17;border-radius:0;transform:rotate(45deg)}.c2 .card-art{border-radius:50%;box-shadow:-50px 34px #ffffff26}.card-no,.card-type,.card-more{z-index:1;letter-spacing:.14em;font:500 11px Outfit}.card-type{margin-top:auto}.card strong{z-index:1;margin:9px 0;font:600 29px Outfit}.card-more{opacity:.85}.skills{background:var(--navy);color:#fff}.skills h2{color:#fff}.skills-layout{grid-template-columns:1fr 1fr;gap:10vw;display:grid}.skill-list article{border-top:1px solid #607692;padding:20px 0}.skill-list b{letter-spacing:.15em;color:var(--teal);font:600 11px Outfit}.skill-list p{margin:11px 0 3px;font-size:15px}.news-list{border-top:1px solid var(--line)}.news-list a{border-bottom:1px solid var(--line);grid-template-columns:150px 1fr 20px;padding:22px 0;font-size:15px;display:grid}.news-list time{color:#678097;letter-spacing:.08em;font:500 12px Outfit}.contact{background:#dbe9ee;padding:105px 9vw}.contact h2{letter-spacing:-.05em;color:var(--navy);margin:0 0 34px;font-size:clamp(35px,4.5vw,62px);line-height:1.4}.contact-mail{border-bottom:1px solid var(--navy);padding-bottom:10px;font:600 21px Outfit}.contact-mail b{margin-left:25px}footer{background:var(--navy);color:#fff;grid-template-columns:1fr 1fr;gap:50px;padding:58px 9vw 28px;display:grid}.footer-brand{letter-spacing:.1em;font:600 14px Outfit}.footer-brand p{margin:6px 0}.footer-links{gap:80px;display:flex}.footer-links div{flex-direction:column;gap:10px;font:400 12px Outfit;display:flex}.footer-links b{color:var(--teal);letter-spacing:.14em;margin-bottom:5px;font-size:10px}footer small{letter-spacing:.1em;color:#aac0d4;border-top:1px solid #46607d;grid-column:1/-1;padding-top:18px;font:10px Outfit}.modal{z-index:20;background:#040f22b8;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.modal article{background:#fff;max-width:550px;padding:60px;position:relative}.modal button{cursor:pointer;background:0 0;border:0;font-size:30px;position:absolute;top:12px;right:16px}.modal article>p:not(.section-kicker){line-height:1.9}.modal em{background:#e8f0f3;margin-right:7px;padding:7px;font:500 11px Outfit}@media (max-width:720px){.header{height:65px;padding:0 6vw}.menu{display:block}.header nav{border-bottom:1px solid var(--line);background:#fff;flex-direction:column;align-items:flex-start;gap:20px;padding:20px 6vw;display:none;position:absolute;top:64px;left:0;right:0}.header nav.open{display:flex}.hero{height:590px}.hero-copy{padding:100px 8vw}.hero-mark{right:8vw}.section{padding:76px 7vw}.intro,.skills-layout{grid-template-columns:1fr;gap:32px}.numbers{grid-template-columns:repeat(2,1fr);padding:42px 7vw}.cards{grid-template-columns:1fr}.card{min-height:310px}.section-head{flex-direction:column;align-items:start;gap:25px}.news-list a{grid-template-columns:1fr 18px;gap:9px}.news-list time{grid-column:1/-1}.contact{padding:75px 7vw}footer{grid-template-columns:1fr;padding:50px 7vw 25px}.footer-links{gap:55px}.modal article{padding:45px 28px}}
