@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;600;700&display=swap');
:root{--paper:#f7f7f4;--ink:#242522;--muted:#696b63;--line:#dcded5;--orange:#c96800;--mono:ui-monospace,SFMono-Regular,Consolas,monospace}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans','Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button{font:inherit}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--orange);outline-offset:6px}a:hover{color:var(--orange)}.wrap{max-width:1320px;margin-inline:auto;padding-inline:64px}.header{height:110px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;font-size:34px;font-weight:700;letter-spacing:-2px;line-height:1}.brand-mark{color:var(--orange);font-size:52px;line-height:.6;align-self:flex-start;margin:6px 7px 0 1px}.brand-small{font-size:10px;letter-spacing:2px;writing-mode:vertical-rl;line-height:1.2}.header nav{display:flex;align-items:center;gap:34px;font-size:14px}.nav-github{border-left:1px solid var(--line);padding-left:30px}.nav-github span{margin-left:6px}.hero{padding-top:43px}.eyebrow,.hero-foot,.mono,.code-top,.code-bottom,.about-location,.footer-note{font-family:var(--mono);font-size:12px;letter-spacing:.04em}.eyebrow{display:flex;justify-content:space-between;color:var(--muted)}h1{font-size:clamp(64px,8.5vw,112px);line-height:1.06;letter-spacing:-.065em;font-weight:500;margin:40px 0 35px;position:relative}h1>span:first-child{color:var(--orange)}.asterisk{position:absolute;right:25px;top:-2px;font-family:Arial,sans-serif;font-size:220px;font-weight:400;line-height:1;color:var(--orange);transform:rotate(13deg)}.hero-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:25px}.hero-bottom h2{font-size:21px;font-weight:500;letter-spacing:.02em;margin:0 0 15px}.hero p{font-size:15px;line-height:1.9;color:var(--muted);margin:0}.round-link{display:flex;gap:22px;align-items:center;font-size:14px;padding-bottom:5px}.circle{width:51px;height:51px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:50%;font-size:23px;transition:background .2s,color .2s}.round-link:hover .circle{background:var(--ink);color:white}.hero-foot{display:flex;justify-content:space-between;color:var(--muted);border-top:1px solid var(--line);margin-top:53px;padding:19px 0}.section{padding-top:79px}.section-head{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-bottom:30px}.section-label{display:flex;align-items:center;gap:17px}.number{font-family:var(--mono);font-size:12px;color:var(--orange)}.section-head h2{font-size:29px;font-weight:500;letter-spacing:-.035em;margin:0}.section-head p{font-size:14px;color:var(--muted);margin:0}.project{display:grid;grid-template-columns:1.06fr 1fr;border:1px solid var(--line);background:#fff}.project-copy{padding:38px 40px}.project-meta{display:flex;gap:17px;align-items:center}.tag{font-family:var(--mono);font-size:11px;background:#f0f1ea;padding:6px 9px;letter-spacing:.04em}.project-meta .mono{font-size:10px;color:var(--muted)}.project h3{font-size:49px;font-weight:500;letter-spacing:-.045em;margin:25px 0 17px}.accent{color:var(--orange)}.project-lead{font-size:23px;line-height:1.6;font-weight:500;margin:0 0 18px}.project-desc{font-size:14px;line-height:1.95;color:var(--muted);max-width:390px;margin:0}.tech-pills{display:flex;flex-wrap:wrap;gap:8px;margin-top:23px}.tech-pills span{border:1px solid var(--line);padding:5px 10px;border-radius:4px;font-size:12px}.project-link{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);margin-top:31px;padding-top:20px;font-size:14px}.project-link span{font-size:24px}.project-code{background:#252821;color:#f2f2e9;padding:32px 35px;display:flex;flex-direction:column;overflow:hidden}.code-top{display:flex;justify-content:space-between;color:#b7bcab}.code-top>span:last-child{font-size:27px}.code-block{margin-top:48px}.code-comment{color:#a6ad99;font-size:13px}.command{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px}.command code{font-size:17px;white-space:nowrap}.command code span{color:#9baa82;margin-right:11px}.command button{border:1px solid #54594c;background:transparent;color:#c5ceba;border-radius:4px;min-width:38px;height:38px;display:grid;place-items:center;cursor:pointer}.command button:hover{background:#3d4235}.copy-status{display:block;min-height:24px;font-size:12px;color:#d9e4c8;margin-top:7px}.code-divider{height:1px;background:#484c42;margin:20px 0 26px}pre{font-family:var(--mono);font-size:14px;line-height:1.9;margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.code-orange{color:#ffa386}.code-green{color:#c5dc9d}.code-bottom{display:flex;align-items:center;justify-content:space-between;color:#a7ad9c;font-size:10px;margin-top:auto;padding-top:35px;gap:10px}.code-symbol{font-size:30px;color:#c7d0b9}.stack{padding-bottom:87px}.stack-table{border-top:1px solid var(--line)}.stack-row{display:grid;grid-template-columns:1fr 1.9fr .65fr;gap:25px;padding:31px 0;border-bottom:1px solid var(--line);align-items:start}.stack-category{display:flex;gap:17px;align-items:center}.stack-category .mono{font-size:11px;color:var(--muted)}.stack-category h3{font-size:17px;font-weight:500;margin:0}.stack-names{font-size:23px;letter-spacing:-.025em;line-height:1.4}.stack-names span{color:#b7b9af;font-weight:400;margin:0 7px}.stack-detail p{font-size:14px;color:var(--muted);margin:12px 0 0}.stack-extra{text-align:right;font-family:var(--mono);font-size:12px;line-height:1.9;color:var(--muted)}.about{background:#eceee6;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.about-inner{display:grid;grid-template-columns:1fr 1.4fr;gap:80px;padding-top:65px;padding-bottom:68px}.about-label h2{font-weight:500;font-size:27px;letter-spacing:-.025em;margin:12px 0 45px}.about-location{line-height:2;color:var(--muted)}.about-location span{font-family:'Noto Sans JP',sans-serif;font-size:13px}.about-copy h3{font-size:32px;line-height:1.65;font-weight:500;letter-spacing:.025em;margin:0 0 23px}.about-copy p{font-size:15px;line-height:2.05;color:#63675c;max-width:570px;margin:0 0 15px}.about-copy a{display:inline-flex;gap:35px;border-bottom:1px solid #9fa494;padding:12px 0;font-size:14px;margin-top:7px}.footer{min-height:125px;display:flex;align-items:center;justify-content:space-between;gap:22px}.footer .brand{font-size:26px}.footer .brand-mark{font-size:40px}.footer .brand-small{font-size:8px}.footer>span,.footer>a:last-child{font-size:12px;color:var(--muted)}.footer .footer-note{font-size:10px}.skip{position:absolute;left:10px;top:-60px;background:var(--ink);color:white;padding:12px;z-index:10}.skip:focus{top:10px}
@media(min-width:1440px){.hero{padding-top:49px}h1{margin-top:48px;margin-bottom:44px}}
@media(max-width:1050px){.wrap{padding-inline:35px}.asterisk{font-size:170px;right:0}.project-copy{padding:30px}.project-code{padding:28px}.project h3{font-size:43px}.project-meta{gap:10px}.project-meta .mono{font-size:9px}.stack-row{grid-template-columns:1fr 2fr}.stack-extra{display:none}.about-inner{gap:45px}.footer-note{display:none}}
@media(max-width:740px){.wrap{padding-inline:23px}.header{height:85px}.brand{font-size:29px}.brand-mark{font-size:43px}.header nav{gap:18px;font-size:12px}.nav-github{display:none}.eyebrow{font-size:10px}.edition{display:none}.hero{padding-top:31px}h1{font-size:clamp(53px,10vw,76px);margin-top:36px;margin-bottom:32px;letter-spacing:-.065em}.asterisk{font-size:100px;right:0;top:-14px;opacity:.9}.hero-bottom{display:block}.hero-bottom h2{font-size:17px}.hero p{font-size:14px}.round-link{margin-top:26px;justify-content:space-between}.circle{width:43px;height:43px}.hero-foot{margin-top:30px;font-size:9px;padding-block:15px}.hero-foot span:last-child{display:none}.section{padding-top:48px}.section-head{display:block;margin-bottom:23px}.section-head h2{font-size:27px}.section-head p{margin-top:13px;font-size:12px}.project{grid-template-columns:1fr}.project-copy{padding:28px 25px}.project h3{font-size:43px}.project-lead{font-size:21px}.project-desc{font-size:14px}.project-code{padding:28px 25px}.code-block{margin-top:28px}.code-bottom{padding-top:28px}.stack{padding-bottom:48px}.stack-row{grid-template-columns:1fr;gap:19px;padding-block:26px}.stack-category h3{font-size:15px}.stack-names{font-size:21px}.stack-detail p{font-size:13px;line-height:1.8}.about-inner{grid-template-columns:1fr;gap:30px;padding-block:40px}.about-label h2{display:inline-block;font-size:24px;margin:0 0 0 15px}.about-location{display:none}.about-copy h3{font-size:27px}.about-copy p{font-size:14px}.footer{flex-wrap:wrap;justify-content:space-between;padding-block:29px;gap:24px}.footer>a:last-child{width:100%;text-align:right}.command code{font-size:15px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.brand img{display:block;width:210px;height:auto}.footer .brand img{width:175px}.asterisk{color:#ff9000}.circle:hover{background:#ff9000}.hero p,.project-desc,.about-copy p,.stack-detail p{font-size:16px}.tech-pills span,.section-head p,.stack-category h3{font-size:14px}@media(max-width:740px){.brand img{width:155px}.header nav{gap:15px;font-size:14px}.hero p,.project-desc,.about-copy p,.stack-detail p{font-size:16px}.hero-bottom h2{line-height:1.8}.asterisk{font-size:83px;right:0;top:-22px}.footer .brand img{width:155px}}@media(max-width:390px){.header nav{gap:11px;font-size:13px}.brand img{width:133px}.wrap{padding-inline:18px}}

@media(max-width:740px){.asterisk{display:none}}

/* Compact package install panel */
.project-code{align-self:center;margin:24px}.project-code .code-block{margin-top:20px}.project-code .command{margin-top:0}.project-code .code-bottom{padding-top:16px}
@media(max-width:740px){.project-code{margin:0;align-self:stretch}}
