@font-face { font-family:"Zen Kaku Gothic New"; src:url("assets/fonts/zen-kaku-new-regular.woff2?v=20260929-release") format("woff2"); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:"Zen Kaku Gothic New"; src:url("assets/fonts/zen-kaku-new-bold.woff2?v=20260929-release") format("woff2"); font-style:normal; font-weight:700; font-display:swap; }
:root {
  color-scheme:light;
  --paper:#ffffff; --ink:#151719; --muted:#555b60; --surface:#f0f2f3; --line:#ced2d5; --signal:#eaff63; --focus:#3143b5;
  --font:"Zen Kaku Gothic New","Yu Gothic",sans-serif;
  --gutter:32px; --shell:1120px; --column-gap:56px; --section-space:36px;
  --duration:180ms; --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:100px; scrollbar-color:var(--ink) var(--surface); }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--font); font-size:16px; line-height:1.8; overflow-wrap:break-word; -webkit-font-smoothing:antialiased; }
::selection { color:var(--ink); background:var(--signal); }
h1,h2,h3,p { margin:0; }
h1,h2,h3 { font-feature-settings:"palt"; font-weight:700; }
a { color:inherit; text-decoration:none; text-underline-offset:.3em; }
button { font:inherit; }
a,button,summary { touch-action:manipulation; }
button,summary { cursor:pointer; }
[hidden] { display:none !important; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid var(--focus); outline-offset:5px; }
[tabindex="-1"]:focus { outline:none; }
.icon { width:20px; height:20px; flex:0 0 20px; fill:none; stroke:currentColor; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.skip-link { position:fixed; z-index:100; left:18px; top:10px; padding:10px 18px; background:var(--ink); color:var(--paper); transform:translateY(-200%); }
.skip-link:focus { transform:translateY(0); }
.site-header,.home-main,.site-footer { width:calc(100% - 2*var(--gutter)); max-width:var(--shell); margin-inline:auto; }
.site-header { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:88px; padding-block:12px; position:sticky; top:0; z-index:20; background:var(--paper); border-bottom:1px solid var(--line); }
.site-name { display:inline-flex; align-items:center; min-height:44px; font-size:16px; font-weight:700; }
.site-name img { width:132px; height:auto; display:block; }
.site-header nav { display:flex; gap:28px; }
.site-header nav a { display:inline-flex; align-items:center; justify-content:center; min-width:44px; min-height:44px; font-size:14px; white-space:nowrap; text-decoration:underline; text-decoration-color:transparent; transition:text-decoration-color var(--duration) var(--ease); }
.site-header nav a:hover,.site-header nav a[aria-current="location"] { text-decoration-color:var(--ink); }
.masthead { display:grid; grid-template-columns:1.25fr 1fr; gap:var(--column-gap); align-items:center; padding-block:44px; border-bottom:2px solid var(--ink); }
.masthead h1 { font-size:clamp(30px,3.1vw,40px); line-height:1.55; letter-spacing:-.025em; }
.masthead h1 span { display:block; }
.masthead h1 .keep-word { display:inline; white-space:nowrap; }
.introduction p { color:var(--muted); max-width:32em; }
.text-link { display:inline-flex; min-height:44px; align-items:center; gap:16px; font-size:14px; font-weight:700; text-decoration:underline; }
.text-link .icon { transition:transform var(--duration) var(--ease); }
.text-link:hover .icon { transform:translateX(4px); }
.introduction .text-link { margin-top:12px; }
.paired-sections { display:grid; grid-template-columns:1.25fr 1fr; gap:var(--column-gap); padding-block:var(--section-space); }
.paired-sections>section { min-width:0; }
.paired-sections>section+section { border-left:1px solid var(--line); padding-left:32px; }
.home-main h2 { font-size:22px; line-height:1.5; letter-spacing:-.02em; }
.work-section,.product-section { padding-block:var(--section-space); }
.work-list { margin-top:20px; }
.work-item,.product-section { display:grid; grid-template-columns:minmax(200px,.9fr) minmax(0,2fr); column-gap:var(--column-gap); }
.work-item { padding-block:20px; border-top:1px solid var(--line); }
.work-item:first-child { padding-top:0; border-top:0; }
.work-item:last-child { padding-bottom:0; }
.work-item h3 { font-size:18px; line-height:1.6; }
.work-item p { color:var(--muted); max-width:46em; }
.product-section { border-top:1px solid var(--line); align-items:baseline; }
.product-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:4px 16px; }
.product-state { font-size:14px; color:var(--muted); }
.product-content { min-width:0; }
.product-content h3 { font-size:18px; line-height:1.6; }
.product-description { margin-top:6px; color:var(--muted); }
.product-details { margin-top:20px; }
.product-details summary { display:flex; align-items:center; justify-content:space-between; gap:16px; list-style:none; min-height:48px; font-size:14px; padding:10px 0; border-block:1px solid var(--line); }
.product-details summary::-webkit-details-marker { display:none; }
.product-details summary:hover { background:var(--surface); }
.product-details summary .icon { transition:transform var(--duration) var(--ease); }
.product-details[open] summary .icon { transform:rotate(180deg); }
.detail-body { font-size:14px; color:var(--muted); padding-top:12px; }
.detail-body p+p { margin-top:12px; }
.product-more { margin-top:8px; }
.contact-business { border-top:2px solid var(--ink); }
.contact-description { margin-top:16px; color:var(--muted); max-width:36em; }
.email-address { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:52px; margin-top:20px; padding-block:8px; border-bottom:1px solid var(--ink); font-size:30px; line-height:1.5; font-weight:700; letter-spacing:-.025em; }
.email-address:hover { text-decoration:underline; }
.email-tools { display:flex; align-items:center; justify-content:space-between; gap:16px; font-size:13px; color:var(--muted); }
.copy-email { min-height:44px; padding:8px 0; border:0; background:none; color:var(--ink); text-decoration:underline; font-size:13px; }
.copy-email:hover { text-decoration-thickness:2px; }
.copy-status { font-size:14px; }
.copy-status:not(:empty) { margin-top:4px; }
.contact-note { font-size:14px; color:var(--muted); margin-top:12px; }
.business-record dl { margin:20px 0 0; font-size:14px; }
.business-record dl>div { display:grid; grid-template-columns:64px minmax(0,1fr); gap:16px; margin-top:8px; }
.business-record dt { color:var(--muted); }
.business-record dd { margin:0; }
.business-record a { display:inline-flex; align-items:center; min-height:44px; text-decoration:underline; }
.site-footer { border-top:1px solid var(--line); padding-block:12px 20px; }
.policy-links { display:flex; flex-wrap:wrap; gap:0 24px; }
.policy-links a { display:inline-flex; align-items:center; min-height:44px; font-size:13px; color:var(--muted); text-decoration:underline; }
.policy-links a:hover { color:var(--ink); }
.footer-end { display:flex; justify-content:space-between; align-items:center; gap:24px; margin-top:4px; font-size:13px; color:var(--muted); }
.footer-end a { display:inline-flex; align-items:center; min-height:44px; gap:12px; }
.footer-end a:hover { color:var(--ink); text-decoration:underline; }
@media (max-width:1000px) {
  :root { --column-gap:36px; }
  .masthead { grid-template-columns:1.2fr 1fr; }
  .masthead h1 { font-size:32px; }
  .paired-sections { grid-template-columns:1.2fr 1fr; }
  .paired-sections>section+section { padding-left:24px; }
  .email-address { font-size:26px; }
}
@media (max-width:760px) {
  :root { --gutter:24px; --section-space:28px; }
  html { scroll-padding-top:88px; }
  .site-header { min-height:72px; padding-block:8px; }
  .site-name img { width:108px; }
  .site-header nav { gap:20px; }
  .masthead { grid-template-columns:1fr; gap:20px; padding-block:32px; }
  .masthead h1 { font-size:32px; }
  .introduction p { max-width:38em; }
  .introduction .text-link { margin-top:8px; }
  .paired-sections { grid-template-columns:1fr; gap:28px; }
  .paired-sections>section+section { padding:28px 0 0; border-left:0; border-top:1px solid var(--line); }
  .work-item,.product-section { grid-template-columns:1fr; }
  .work-item h3 { margin-bottom:6px; }
  .product-section { row-gap:16px; }
  .work-list,.business-record dl { margin-top:16px; }
  .contact-description { margin-top:12px; }
  .email-address { font-size:28px; max-width:500px; }
  .email-tools { max-width:500px; }
  .policy-links { column-gap:20px; }
}
@media (max-width:470px) {
  :root { --gutter:20px; }
  .site-header { gap:16px; }
  .site-name img { width:88px; }
  .site-header nav { gap:8px; }
  .site-header nav a { font-size:13px; }
  .masthead h1 { font-size:clamp(25px,7.3vw,30px); letter-spacing:-.025em; }
  .masthead h1 span { white-space:nowrap; }
  .email-address { font-size:clamp(23px,6.4vw,28px); }
  .email-tools { font-size:12px; gap:8px; }
  .copy-email { font-size:12px; }
  .business-record dl>div { grid-template-columns:56px minmax(0,1fr); gap:12px; }
  .policy-links { display:grid; grid-template-columns:1fr; }
}
@media (max-width:360px) {
  .site-header { gap:8px; }
  .site-name img { width:72px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .site-header nav a,.text-link .icon,.product-details summary .icon { transition:none; }
}
@media print {
  .site-header { position:static; }
  .site-header nav,.copy-email,.copy-status,.footer-end a { display:none !important; }
  .masthead,.work-section,.product-section,.paired-sections { padding-block:24px; }
  .paired-sections { break-inside:avoid; }
}
