:root { --ink:#171717; --muted:#717171; --paper:#fff; --soft:#f6f6f4; --line:#dededb; --accent:#33483b; --max:1240px; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Helvetica Neue",Helvetica,Arial,"Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; -webkit-font-smoothing:antialiased; font-feature-settings:"palt" 1; }
a { color:inherit; }
.skip-link { position:fixed; left:1rem; top:-5rem; z-index:10; padding:.7rem 1rem; color:#fff; background:var(--ink); }
.skip-link:focus { top:1rem; }
.site-header, footer { max-width:var(--max); margin:auto; padding:30px 40px; display:flex; align-items:center; justify-content:space-between; }
.site-header { min-height:88px; }
.brand { display:inline-flex; text-decoration:none; font-size:.78rem; font-weight:600; letter-spacing:.22em; }
nav { display:flex; gap:34px; }
nav a, .social-links a, .footer-meta a { color:#303030; font-size:.78rem; text-decoration:none; border-bottom:1px solid transparent; }
nav a:hover, .social-links a:hover, .footer-meta a:hover { border-color:currentColor; }
main, footer { border-top:1px solid var(--line); }
main { max-width:var(--max); margin:auto; }
.hero { min-height:min(760px,calc(100vh - 88px)); display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:60px; padding:110px 7.5% 74px; }
.hero-copy { align-self:center; }
.eyebrow, .section-number, .status, .app-index { text-transform:uppercase; letter-spacing:.16em; font-size:.66rem; font-weight:500; }
.eyebrow { margin:0 0 32px; color:var(--muted); }
h1 { max-width:900px; margin:0; font-size:clamp(4rem,8.2vw,7.4rem); font-weight:400; line-height:.94; letter-spacing:-.072em; }
h1 span { color:var(--accent); }
.hero-ja { max-width:32em; margin:38px 0 44px; font-size:clamp(1rem,1.35vw,1.18rem); line-height:1.9; letter-spacing:.04em; white-space:nowrap; }
.text-link { display:inline-flex; gap:16px; padding-bottom:5px; font-size:.78rem; text-decoration:none; border-bottom:1px solid var(--ink); }
.hero-note { margin:0; color:var(--muted); font-size:.68rem; line-height:1.7; letter-spacing:.04em; white-space:nowrap; }
.section { padding:112px 7.5%; border-top:1px solid var(--line); }
.section-heading { display:grid; grid-template-columns:70px 1fr 1.4fr; gap:28px; align-items:baseline; margin-bottom:70px; }
.section-number { color:var(--muted); }
h2 { margin:0; font-size:clamp(2rem,3.7vw,3.1rem); font-weight:400; letter-spacing:-.045em; }
.section-heading>p:last-child { max-width:400px; margin:0; color:var(--muted); font-size:.92rem; line-height:1.9; }
.app-list { margin-left:98px; border-top:1px solid var(--ink); }
.app-card { display:grid; grid-template-columns:60px 1fr auto; gap:24px; align-items:start; padding:34px 0 36px; border-bottom:1px solid var(--line); }
.app-index { margin:7px 0 0; color:var(--muted); }
.status { margin:0 0 14px; color:var(--accent); }
.status span { display:inline-block; width:5px; height:5px; margin:0 8px 1px 0; border-radius:50%; background:var(--accent); }
.status.development { color:#806d54; }
.status.development span { background:#806d54; }
.app-info h3 { margin:0 0 12px; font-size:1.42rem; font-weight:500; letter-spacing:.015em; }
.app-info>p:last-child { max-width:560px; margin:0; color:var(--muted); font-size:.9rem; line-height:1.8; }
.card-arrow { margin-top:2px; font-size:1rem; }
.about { background:var(--soft); }
.about-copy { margin-left:98px; display:grid; grid-template-columns:1.08fr 1fr; gap:24px 80px; }
.about-copy .lead { grid-row:span 2; margin:0; font-size:clamp(1.55rem,2.7vw,2.2rem); font-weight:400; line-height:1.65; letter-spacing:-.025em; }
.about-copy p:not(.lead) { max-width:440px; margin:2px 0; color:#555; font-size:.92rem; line-height:2; }
.contact-content { margin-left:98px; }
.contact-content>p { color:var(--muted); font-size:.9rem; }
.email-link { display:inline-flex; gap:20px; margin:26px 0 64px; font-size:clamp(2rem,5.2vw,4.5rem); font-weight:300; letter-spacing:-.055em; text-decoration-thickness:1px; text-underline-offset:9px; }
.social-links { display:flex; gap:32px; }
footer { min-height:126px; }
.footer-meta { display:flex; align-items:center; gap:28px; color:var(--muted); font-size:.76rem; }
.footer-meta p { margin:0; }
.policy-main { padding:96px 12% 120px; }
.policy { max-width:740px; }
.policy h1 { margin-bottom:34px; font-size:clamp(3rem,7vw,6rem); }
.policy .updated { margin-bottom:60px; color:var(--muted); }
.policy h2 { margin:45px 0 14px; font-size:1.15rem; font-weight:500; letter-spacing:0; }
.policy p, .policy li { color:#4e4e4a; line-height:1.9; }
.back-link { display:inline-block; margin-bottom:48px; font-size:.8rem; text-decoration:none; }
@media (max-width:760px) {
  .site-header { min-height:72px; padding:20px 22px; }
  nav { gap:18px; }
  nav a:nth-child(2) { display:none; }
  .hero { min-height:calc(100svh - 72px); grid-template-columns:1fr; align-content:space-between; gap:60px; padding:86px 24px 34px; }
  h1 { font-size:clamp(3.35rem,16vw,5rem); line-height:.96; }
  .hero-ja { margin:30px 0 38px; font-size:.96rem; white-space:normal; }
  .hero-note { justify-self:end; text-align:right; }
  .section { padding:78px 24px; }
  .section-heading { grid-template-columns:42px 1fr; gap:10px; margin-bottom:46px; }
  .section-heading>p:last-child { grid-column:2; margin-top:8px; }
  .app-list, .about-copy, .contact-content { margin-left:0; }
  .app-card { grid-template-columns:34px 1fr auto; gap:12px; padding:28px 0; }
  .app-info h3 { font-size:1.23rem; }
  .app-info>p:last-child { font-size:.84rem; }
  .about-copy { grid-template-columns:1fr; gap:24px; }
  .about-copy .lead { grid-row:auto; margin-bottom:14px; font-size:clamp(1.4rem,6vw,1.8rem); }
  .email-link { max-width:100%; margin-bottom:54px; font-size:clamp(1.48rem,7.4vw,2.2rem); overflow-wrap:anywhere; }
  footer { align-items:flex-start; padding:28px 22px; }
  .footer-meta { align-items:flex-end; flex-direction:column; gap:10px; }
  .policy-main { padding:64px 24px 90px; }
}
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none!important; } }
