:root{--paper:#f2f4f1;--paper-deep:#e4e9e4;--ink:#16202f;--ink-soft:#46515f;--rule:#c6cec8;--line-teal:#5fd8bd;--line-indigo:#aab6ff;--signal:#f2b705;--focus:#1d4ed8;--serif:"Iowan Old Style", "Palatino Linotype", Palatino, "Hiragino Mincho ProN", "Yu Mincho", "Noto Serif CJK JP", "Noto Serif CJK SC", "Songti SC", Georgia, serif;--sans:system-ui, -apple-system, "Segoe UI", "Hiragino Sans", "Yu Gothic UI", "PingFang SC", "Microsoft YaHei", "Noto Sans CJK JP", "Noto Sans CJK SC", Roboto, sans-serif;--wrap:72rem;--gutter:clamp(1.25rem, 5vw, 3rem)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{background:var(--paper);color:var(--ink);font-family:var(--sans);margin:0;font-size:1.0625rem;line-height:1.7}h1,h2,h3,p,ul{margin:0}ul{padding:0;list-style:none}a{color:inherit}:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.products :focus-visible,.contact :focus-visible,.site-footer :focus-visible{outline-color:var(--signal)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[id]{scroll-margin-top:1rem}main:focus{outline:none}.wrap{width:min(100%, var(--wrap));padding-inline:var(--gutter);margin-inline:auto}.skip-link{left:var(--gutter);z-index:20;background:var(--ink);color:#fff;padding:.6rem 1rem;position:absolute;top:0;transform:translateY(-120%)}.skip-link:focus{outline-color:var(--signal);transform:translateY(0)}.header-bar{width:min(100%, var(--wrap));padding:1rem var(--gutter);flex-wrap:wrap;align-items:center;gap:.75rem 1.5rem;margin-inline:auto;display:flex}.brand{font-family:var(--serif);margin-right:auto;font-size:1.25rem;font-weight:700;text-decoration:none}.lang-fieldset{border:0;min-width:0;margin:0;padding:0}.lang-switch{border:1.5px solid var(--ink);border-radius:.35rem;display:inline-flex;overflow:hidden}.lang-switch button{min-width:3rem;min-height:2.5rem;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;padding:0 .8rem;font-size:.9rem}.lang-switch button+button{border-left:1.5px solid var(--ink)}.lang-switch button[aria-pressed=true]{background:var(--ink);color:#fff}.lang-switch button:focus-visible{outline-offset:-4px}.menu-toggle{border:1.5px solid var(--ink);min-height:2.5rem;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border-radius:.35rem;padding:0 .9rem;font-size:.9rem;display:none}.site-nav ul{gap:1.5rem;display:flex}.site-nav a{border-bottom:2px solid #0000;padding:.35rem 0;text-decoration:none;display:inline-block}.site-nav a:hover{border-bottom-color:var(--ink)}@media (max-width:52rem){.menu-toggle{display:inline-block}.site-nav{flex-basis:100%}.site-nav[data-open=false]{display:none}.site-nav ul{border-top:1.5px solid var(--ink);flex-direction:column;gap:0}.site-nav a{border-bottom:1px solid var(--rule);padding:.8rem 0;display:block}}.hero{padding-block:clamp(3rem,9vw,7rem) clamp(3rem,8vw,6rem)}.hero-role{color:var(--ink-soft);margin-top:1rem;font-size:1.25rem}.hero-name{font-family:var(--serif);letter-spacing:-.03em;font-size:clamp(3.75rem,14vw,10rem);font-weight:700;line-height:.95}.hero-line{background:linear-gradient(90deg, var(--ink) 0 55%, var(--line-teal) 55% 80%, var(--line-indigo) 80% 100%);transform-origin:0;border-radius:.3rem;height:.6rem;margin-block:clamp(1.5rem,4vw,2.5rem);display:block}@media (prefers-reduced-motion:no-preference){.hero-line{animation:.9s cubic-bezier(.2,.7,.2,1) both draw}}@keyframes draw{0%{transform:scaleX(0)}}.hero-intro{max-width:38rem;font-family:var(--serif);font-size:clamp(1.25rem,2.6vw,1.625rem);line-height:1.6}.hero-actions{flex-wrap:wrap;gap:.75rem;margin-top:2rem;display:flex}.btn{border:2px solid var(--ink);border-radius:.35rem;align-items:center;min-height:3rem;padding:.5rem 1.4rem;font-weight:600;line-height:1.3;text-decoration:none;display:inline-flex}.btn-solid{background:var(--ink);color:#fff}.btn-solid:hover{background:#2a3a52}.btn-outline:hover{background:var(--paper-deep)}.products,.contact,.site-footer{background:var(--ink);color:#f2f4f1}.products{padding-block:clamp(3rem,8vw,6rem)}h2{font-family:var(--serif);letter-spacing:-.01em;font-size:clamp(2rem,5vw,3rem);line-height:1.15}.section-intro{max-width:36rem;color:inherit;opacity:.85;margin-top:.5rem}.product-list{grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,3vw,2rem);margin-top:2.5rem;display:grid}.product{border:2px solid;border-left-width:.75rem;border-radius:.5rem;flex-direction:column;align-items:flex-start;padding:clamp(1.25rem,3vw,2rem);display:flex}.product-tickspace{border-color:var(--line-teal)}.product-jpycWatcher{border-color:var(--line-indigo)}.art{width:7.5rem;height:auto;margin-bottom:1.25rem}.product-tickspace .art{color:var(--line-teal)}.product-jpycWatcher .art{color:var(--line-indigo)}.product h3{font-family:var(--serif);font-size:clamp(1.75rem,4vw,2.25rem);line-height:1.15}.product-summary{margin-top:.75rem;font-size:1.125rem}.product-note{opacity:.8;margin-top:.5rem;margin-bottom:1.5rem;font-size:.95rem}.btn-product{color:var(--ink);background:#f2f4f1;border-color:#f2f4f1;margin-top:auto}.btn-product:hover{background:#fff}.product-host{opacity:.75;overflow-wrap:anywhere;margin-top:.6rem;font-size:.875rem}@media (max-width:52rem){.product-list{grid-template-columns:minmax(0,1fr)}}.band{border-bottom:1px solid var(--rule);padding-block:clamp(3rem,7vw,5.5rem)}.split{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:2rem;display:grid}.prose{max-width:40rem;font-family:var(--serif);font-size:1.1875rem;line-height:1.8}.prose p+p{margin-top:1.25rem}.rows{border-top:2px solid var(--ink);margin-top:2rem}.row{border-bottom:1px solid var(--rule);grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:.5rem 2rem;padding-block:1.5rem;display:grid}.row h3{font-family:var(--serif);font-size:1.375rem;line-height:1.3}.row p{max-width:40rem}.tags{color:var(--ink-soft);margin-top:.4rem;font-size:.9rem}.text-link{text-underline-offset:.2em;margin-top:.5rem;padding-block:.25rem;font-weight:600;display:inline-block}.skill-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:2rem;margin-top:2rem;display:grid}.skill-group h3{border-top:2px solid var(--ink);padding-top:.75rem;font-size:1rem;font-weight:700}.skill-group ul{color:var(--ink-soft);margin-top:.5rem}@media (max-width:60rem){.skill-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:40rem){.split,.row,.skill-grid{grid-template-columns:minmax(0,1fr)}}.contact{padding-block:clamp(3rem,7vw,5rem)}.contact-links{flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;display:flex}.btn-contact{color:#f2f4f1;border-color:#f2f4f1}.btn-contact:hover{color:var(--ink);background:#f2f4f1}.site-footer{border-top:1px solid #3a475a;padding-block:1.5rem;font-size:.9rem}:lang(ja) body,:lang(ja) .prose,:lang(ja) .hero-intro{line-break:strict}:lang(zh){--serif:"Songti SC", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif}:lang(ja) h1,:lang(zh) h1,:lang(ja) h2,:lang(zh) h2{letter-spacing:0}@media (forced-colors:active){.hero-line{background:canvastext}.lang-switch button[aria-pressed=true]{outline:2px solid highlight}}
