:root{--paper:#f7f6f2;--ink:#242c29;--muted:#6c736e;--line:#dddfd7;--green:#477657;--lime:#d5e7a1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Yu Gothic,sans-serif;line-height:1.85}a{color:inherit;text-decoration:none}a:focus-visible{outline:3px solid var(--green);outline-offset:6px}a:hover{color:var(--green)}.header,main,footer{max-width:1160px;margin:auto;padding-left:40px;padding-right:40px}.header{height:106px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-size:19px;font-weight:800;letter-spacing:.06em}.brand>span{color:var(--green)}.dot{font-size:10px;margin-left:12px}nav{display:flex;gap:36px;font-size:14px}nav [aria-current=page]{color:var(--green);text-decoration:underline;text-underline-offset:8px}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;min-height:610px;gap:30px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.17em;color:var(--green);margin:0 0 22px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(44px,5.8vw,76px);line-height:1.36;letter-spacing:.02em;margin-bottom:28px;font-weight:750}.accent{color:var(--green)}.lead{font-size:15px;line-height:2.2;color:var(--muted);margin-bottom:32px}.button{display:inline-flex;gap:56px;align-items:center;background:var(--ink);color:#fff;padding:13px 23px;font-size:13px;border-radius:4px}.button:hover{background:var(--green);color:#fff}.art{position:relative;height:450px;display:grid;place-items:center;background:radial-gradient(ellipse,#e1e7d5 0%,#e8ebdf 43%,transparent 69%)}.orbit{position:absolute;width:355px;height:355px;border:1px solid #c6cdbb;border-radius:50%}.phone{width:225px;height:350px;background:#fffef9;border:6px solid #303c32;border-radius:32px;padding:28px 17px;transform:rotate(9deg);box-shadow:18px 24px #52654318}.phone-top{height:8px;width:60px;background:#303c32;border-radius:10px;margin:-19px auto 28px}.phone p{font-size:7px;letter-spacing:.16em;color:#6c7b64;margin-bottom:12px}.phone strong{font-size:23px;line-height:1.6}.mock-chart{display:flex;align-items:end;gap:9px;height:78px;margin:19px 0}.mock-chart i{width:16px;background:#adc98b;border-radius:4px}.mock-chart i:nth-child(1){height:25%}.mock-chart i:nth-child(2){height:45%}.mock-chart i:nth-child(3){height:35%}.mock-chart i:nth-child(4){height:60%}.mock-chart i:nth-child(5){height:52%}.mock-chart i:nth-child(6){height:76%}.mock-chart i:nth-child(7){height:95%;background:#477657}.mock-item{font-size:11px;border-top:1px solid #e5e8df;padding:8px 0;color:var(--green)}.mock-item span{color:var(--ink);margin-left:5px}.art-label{position:absolute;bottom:18px;left:20px;font-size:9px;letter-spacing:.2em}.spark{position:absolute;top:42px;right:26px;font-size:68px;color:var(--green)}.notice{border-block:1px solid var(--line);padding:13px 0;font-size:10px;letter-spacing:.09em;color:var(--green);display:flex;gap:25px}.notice span{font-size:11px;letter-spacing:0;color:var(--muted)}section{margin-bottom:85px}.hero{margin-bottom:20px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:64px 0 27px}.section-heading .eyebrow{margin-bottom:7px}h2{font-size:29px;line-height:1.6;margin-bottom:0}.section-heading>a{font-size:12px}.project{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line);border-radius:8px;overflow:hidden;transition:box-shadow .2s}.project:hover{box-shadow:0 10px 30px #2038200b}.project-visual{background:#e3e8d9;min-height:290px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.app-icon{height:105px;width:105px;background:#467255;color:#fff;border-radius:25px;font-size:80px;font-family:Georgia,serif;line-height:92px;text-align:center;box-shadow:0 12px 20px #36533e20}.app-icon span{color:var(--lime);font-size:48px}.project-visual>span{font-size:8px;letter-spacing:.2em;color:#607457}.project-copy{padding:48px}.tag{font-size:10px;letter-spacing:.06em;color:var(--green)}h3{font-size:24px;margin-bottom:14px}.project-copy>p:not(.tag){font-size:13px;color:var(--muted);margin-bottom:26px}.text-link{font-size:12px;color:var(--green)}.article-row{display:grid;grid-template-columns:135px 1fr 25px;gap:24px;border-top:1px solid var(--line);padding:30px 0;align-items:center}.article-row:last-child{border-bottom:1px solid var(--line)}.date{font-size:12px;color:var(--muted)}.article-row h3{font-size:19px;margin:6px 0}.article-row p{font-size:12px;color:var(--muted);margin-bottom:0}.arrow{font-size:23px}.about-strip{padding:46px 48px;background:#e9ece2;border-radius:6px}.about-strip h2{font-size:32px;margin-bottom:25px}.about-strip a{font-size:12px;color:var(--green)}footer{padding-top:30px;padding-bottom:35px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px}footer .brand{font-size:13px}footer p,footer>span{font-size:10px;color:var(--muted);margin:0}.page-intro{padding-top:76px;margin-bottom:45px}.page-intro h1{font-size:48px}.prose{max-width:740px;margin:65px auto 95px}.prose h1{font-size:43px;line-height:1.6}.prose h2{font-size:24px;margin:42px 0 18px}.prose p,.prose li{font-size:15px}.prose .eyebrow{font-size:11px}.prose .back{display:block;font-size:12px;margin-bottom:36px;color:var(--muted)}.prose code{background:#e9ece2;padding:3px 6px;border-radius:4px;font-size:13px}.prose .notice{display:block;font-size:12px;letter-spacing:0}.detail-visual{border-radius:8px;margin:40px 0}@media(max-width:700px){.header,main,footer{padding-left:22px;padding-right:22px}.header{height:82px}.brand{font-size:15px}nav{gap:18px;font-size:12px}.dot{display:none}.hero{grid-template-columns:1fr;gap:0;padding-top:45px}.hero h1{font-size:54px}.hero .lead{font-size:13px}.art{height:400px;margin-top:15px}.spark{right:15px}.notice{display:block}.notice span{display:block;margin-top:5px}section{margin-bottom:54px}.section-heading{margin-top:44px}h2{font-size:25px}.section-heading>a{font-size:10px}.project{grid-template-columns:1fr}.project-copy{padding:28px}.project-visual{min-height:250px}.article-row{grid-template-columns:1fr 20px;gap:8px;padding:24px 0}.article-row .date{grid-column:1/-1}.article-row h3{font-size:17px}.article-row p{font-size:11px}.about-strip{padding:30px 24px}.about-strip h2{font-size:26px}footer{align-items:start;flex-direction:column;gap:10px}.page-intro{padding-top:48px}.page-intro h1{font-size:36px}.prose{margin-top:40px}.prose h1{font-size:32px}.prose p,.prose li{font-size:14px}}.project-actions{display:flex;align-items:center;flex-wrap:wrap;gap:16px 22px}.project-copy h3 a:hover{color:var(--green)}.prose h1{text-wrap:balance}.article-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px;align-items:start;margin:32px 0}.article-gallery .article-figure{margin:0 auto;width:100%;min-width:0}.article-body .article-image-link{display:block;text-decoration:none;border-radius:10px;cursor:zoom-in;outline-offset:5px}.article-image-link:hover{box-shadow:0 8px 28px #242c2920}.article-image-link img{width:100%}@media(max-width:600px){.article-gallery{grid-template-columns:1fr;gap:32px}}.article-body{min-width:0;overflow-wrap:anywhere}.article-body a{color:var(--green);text-decoration:underline;text-underline-offset:4px}.article-body h3{font-size:19px;margin:30px 0 12px}.article-body ul,.article-body ol{padding-left:1.6em}.article-body li+li{margin-top:8px}.article-body pre{max-width:100%;overflow-x:auto;padding:20px;border-radius:8px;font-size:13px;line-height:1.8}.article-body pre code{background:none;padding:0;border-radius:0;white-space:pre;overflow-wrap:normal}.article-body table{display:block;max-width:100%;overflow-x:auto;border-collapse:collapse;margin:24px 0;font-size:14px}.article-body th,.article-body td{text-align:left;vertical-align:top;padding:12px 14px;border:1px solid var(--line);min-width:120px}.article-body th{background:#e9ece2;font-weight:650}.article-body img{display:block;max-width:100%;height:auto}.article-figure{margin:32px auto;max-width:580px}.article-figure-portrait{max-width:280px}.article-figure img{border-radius:10px}.article-figure figcaption{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.8}.prose .article-app{border:1px solid var(--line);border-radius:8px;background:#e9ece2;padding:28px;margin-top:44px}.article-app .eyebrow{margin-bottom:10px}.prose .article-app h2{margin:0 0 12px;font-size:26px}.article-app>p:not(.eyebrow){font-size:14px;color:var(--muted)}
