.tmchat{position:fixed;right:clamp(12px,4vw,28px);bottom:clamp(12px,4vw,28px);z-index:9999;font-family:var(--font-jp, sans-serif)}.tmchat-launcher{display:inline-flex;align-items:center;gap:9px;padding:12px 18px 12px 14px;border:none;border-radius:999px;background:var(--accent, #5b9bd5);color:var(--on-accent, #fff);font-size:.95rem;font-weight:700;cursor:pointer;box-shadow:0 8px 26px #2f629657;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.tmchat-launcher:hover{background:var(--accent-hover, #3f7cba);transform:translateY(-2px);box-shadow:0 12px 30px #2f62966b}.tmchat-launcher:focus-visible{outline:3px solid var(--focus-ring, rgba(91,155,213,.45));outline-offset:2px}.tmchat-launcher-mark{display:block;border-radius:50%;background:#fff;padding:2px}.tmchat[data-open=true] .tmchat-launcher{display:none}.tmchat-panel{position:absolute;right:0;bottom:0;width:min(380px,calc(100vw - 24px));height:min(560px,calc(100vh - 24px));display:none;flex-direction:column;background:var(--surface-card, #fff);border:1px solid var(--border, #dce0e6);border-radius:18px;box-shadow:0 24px 60px #0c0f143d;overflow:hidden}.tmchat[data-open=true] .tmchat-panel{display:flex;animation:tmchat-in .2s ease}@keyframes tmchat-in{0%{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.tmchat[data-open=true] .tmchat-panel{animation:none}}.tmchat-head{display:flex;align-items:center;gap:11px;padding:14px 14px 14px 16px;background:var(--surface-dark, #0c0f14);color:var(--text-on-dark, #eef1f4)}.tmchat-head-mark{display:block;border-radius:50%;background:#fff;padding:3px;flex:none}.tmchat-head-text{display:flex;flex-direction:column;line-height:1.3;margin-right:auto}.tmchat-title{font-weight:700;font-size:.98rem}.tmchat-sub{font-size:.72rem;color:var(--text-on-dark-muted, #9aa4b1)}.tmchat-close{flex:none;display:grid;place-items:center;width:32px;height:32px;border:none;border-radius:8px;background:transparent;color:var(--text-on-dark, #eef1f4);cursor:pointer}.tmchat-close:hover{background:#ffffff1f}.tmchat-close:focus-visible{outline:2px solid var(--text-on-dark, #eef1f4);outline-offset:1px}.tmchat-log{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--surface-subtle, #f6f8fa)}.tmchat-msg{max-width:86%;padding:10px 13px;border-radius:14px;font-size:.9rem;line-height:1.7;white-space:pre-wrap;word-break:break-word}.tmchat-msg a{color:inherit;text-decoration:underline}.tmchat-msg-bot{align-self:flex-start;background:var(--surface-card, #fff);color:var(--text-body, #2c3744);border:1px solid var(--border, #dce0e6);border-bottom-left-radius:5px}.tmchat-msg-user{align-self:flex-end;background:var(--accent, #5b9bd5);color:var(--on-accent, #fff);border-bottom-right-radius:5px}.tmchat-msg-error{align-self:flex-start;background:#fdeceb;color:#a3322a;border:1px solid #f4c8c4;border-bottom-left-radius:5px}.tmchat-chips{display:flex;flex-wrap:wrap;gap:7px;align-self:flex-start;max-width:100%}.tmchat-chip{padding:7px 12px;border:1px solid var(--border-strong, #b7bec8);border-radius:999px;background:var(--surface-card, #fff);color:var(--accent-press, #2f6296);font-size:.82rem;font-weight:600;cursor:pointer;transition:background .14s ease,border-color .14s ease}.tmchat-chip:hover{background:var(--blue-50, #f1f7fc);border-color:var(--accent, #5b9bd5)}.tmchat-chip:focus-visible{outline:2px solid var(--focus-ring, rgba(91,155,213,.45));outline-offset:1px}.tmchat-typing{display:inline-flex;gap:4px;align-items:center}.tmchat-typing span{width:6px;height:6px;border-radius:50%;background:var(--ink-400, #8a94a1);animation:tmchat-blink 1.2s infinite ease-in-out}.tmchat-typing span:nth-child(2){animation-delay:.18s}.tmchat-typing span:nth-child(3){animation-delay:.36s}@keyframes tmchat-blink{0%,80%,to{opacity:.25}40%{opacity:1}}.tmchat-form{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--border, #dce0e6);background:var(--surface-card, #fff)}.tmchat-text{flex:1;resize:none;max-height:120px;padding:9px 12px;border:1px solid var(--border-strong, #b7bec8);border-radius:12px;font-family:inherit;font-size:.9rem;line-height:1.5;color:var(--text-strong, #0c0f14)}.tmchat-text:focus-visible{outline:none;border-color:var(--accent, #5b9bd5);box-shadow:0 0 0 3px var(--focus-ring, rgba(91,155,213,.45))}.tmchat-send{flex:none;display:grid;place-items:center;width:40px;height:40px;border:none;border-radius:12px;background:var(--accent, #5b9bd5);color:var(--on-accent, #fff);cursor:pointer;transition:background .14s ease}.tmchat-send:hover{background:var(--accent-hover, #3f7cba)}.tmchat-send:disabled{background:var(--ink-300, #b7bec8);cursor:not-allowed}.tmchat-send:focus-visible{outline:2px solid var(--focus-ring, rgba(91,155,213,.45));outline-offset:2px}.tmchat-foot{margin:0;padding:0 14px 12px;font-size:.68rem;color:var(--text-muted, #5f6b7a);background:var(--surface-card, #fff);text-align:center}.tmchat-foot a{color:var(--accent-press, #2f6296)}:root{--white: #ffffff;--black: #0c0f14;--ink-950: #0c0f14;--ink-900: #141922;--ink-800: #1d2530;--ink-700: #2c3744;--ink-600: #44505f;--ink-500: #5f6b7a;--ink-400: #8a94a1;--ink-300: #b7bec8;--ink-200: #dce0e6;--ink-150: #e6e9ee;--ink-100: #eef1f4;--ink-50: #f6f8fa;--blue-700: #2f6296;--blue-600: #3f7cba;--blue-500: #5b9bd5;--blue-400: #7db0de;--blue-200: #c5dcf1;--blue-100: #e3eef9;--blue-50: #f1f7fc;--status-active: #2f8f6f;--status-active-bg: #e7f3ee;--status-prep: #b07d2a;--status-prep-bg: #f7efe0;--status-dev: #3f7cba;--status-dev-bg: #e7f0f9;--text-strong: var(--ink-950);--text-body: var(--ink-700);--text-muted: var(--ink-500);--text-on-dark: #eef1f4;--text-on-dark-muted: #9aa4b1;--surface-page: var(--white);--surface-subtle: var(--ink-50);--surface-card: var(--white);--surface-dark: var(--ink-950);--accent: var(--blue-500);--accent-hover: var(--blue-600);--accent-press: var(--blue-700);--accent-tint: var(--blue-100);--on-accent: var(--white);--border: var(--ink-200);--border-strong: var(--ink-300);--border-dark: rgba(255, 255, 255, .12);--focus-ring: rgba(91, 155, 213, .45);--font-jp: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif;--font-latin: "Schibsted Grotesk", "Zen Kaku Gothic New", sans-serif;--font-mincho: "Shippori Mincho", "Hiragino Mincho ProN", "Yu Mincho", serif;--fs-body: 1rem;--fs-xs: .75rem;--ls-eyebrow: .22em;--lh-jp: 1.9;--lh-jp-tight: 1.6;--section-y: 120px;--section-y-sm: 72px;--container: 1160px;--gutter: 24px;--radius-sm: 8px;--radius-lg: 16px;--radius-pill: 999px;--shadow-sm: 0 1px 3px rgba(20, 25, 34, .06), 0 1px 2px rgba(20, 25, 34, .04);--shadow-md: 0 6px 20px rgba(20, 25, 34, .07), 0 2px 6px rgba(20, 25, 34, .04);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .14s;--dur: .24s}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-jp);font-size:var(--fs-body);line-height:var(--lh-jp);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"palt" 1}::selection{background:var(--blue-200);color:var(--ink-950)}a{color:var(--accent-hover);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}.tm-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}.eyebrow{display:flex;align-items:center;gap:12px;font-family:var(--font-latin);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-eyebrow);text-transform:uppercase;color:var(--accent-hover)}.eyebrow:before{content:"";width:24px;height:2px;background:currentColor;display:inline-block;flex-shrink:0}.eyebrow--dark{color:var(--blue-400)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;font-family:var(--font-jp);font-weight:500;letter-spacing:.02em;line-height:1;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn-sm{font-size:.8125rem;padding:8px 16px;height:36px}.btn-md{font-size:.9375rem;padding:11px 22px;height:44px}.btn-lg{font-size:1rem;padding:15px 30px;height:54px}.btn-full{width:100%}.btn-primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn-primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--on-accent)}.btn-secondary{background:var(--surface-page);color:var(--text-strong);border-color:var(--border-strong)}.btn-secondary:hover{border-color:var(--ink-950);color:var(--text-strong)}.btn:active{transform:translateY(1px)}.card{position:relative;background:var(--surface-card);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);overflow:hidden}.card--interactive{transition:box-shadow var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.card--interactive:hover{box-shadow:var(--shadow-md);transform:translateY(-3px);border-color:var(--border-strong)}.card--accent:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--accent)}.badge{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-jp);font-size:.75rem;font-weight:500;letter-spacing:.04em;padding:5px 11px 5px 9px;border-radius:var(--radius-pill);line-height:1;white-space:nowrap}.badge:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}.badge-active{color:var(--status-active);background:var(--status-active-bg);border:1px solid rgba(47,143,111,.18)}.badge-prep{color:var(--status-prep);background:var(--status-prep-bg);border:1px solid rgba(176,125,42,.18)}.badge-dev{color:var(--status-dev);background:var(--status-dev-bg);border:1px solid rgba(63,124,186,.18)}.field{display:flex;flex-direction:column;gap:8px;font-family:var(--font-jp)}.field>label{font-size:.875rem;font-weight:500;color:var(--text-strong);letter-spacing:.01em}.field .req{color:var(--accent-hover);margin-left:4px;font-size:.75rem}.field input,.field textarea{font-family:var(--font-jp);font-size:1rem;color:var(--text-strong);background:var(--surface-page);border:1px solid var(--border);border-radius:var(--radius-sm);padding:12px 14px;width:100%;outline:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.field textarea{line-height:var(--lh-jp-tight);resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.js [data-reveal]{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out);transition-delay:var(--reveal-delay, 0ms);will-change:opacity,transform}.js [data-reveal].is-visible{opacity:1;transform:none}@keyframes hero-grid-drift{0%{background-position:0 0}to{background-position:0 240px}}.hero-grid{animation:hero-grid-drift 26s linear infinite}@keyframes hero-glow-pulse{0%,to{opacity:.85;transform:scale(1)}50%{opacity:1;transform:scale(1.08)}}.hero-glow{animation:hero-glow-pulse 9s var(--ease-out) infinite}.hero h1 .accent{position:relative}.hero h1 .accent:after{content:"";position:absolute;left:0;bottom:.06em;height:3px;width:100%;background:var(--accent);transform:scaleX(0);transform-origin:left;border-radius:2px;transition:transform .9s var(--ease-out)}.hero h1 .accent.is-drawn:after{transform:scaleX(1)}.js .card--accent:before{transform:scaleX(0);transform-origin:left;transition:transform var(--dur) var(--ease-out)}.js .card--accent.is-visible:before,.js .card--accent:hover:before{transform:scaleX(1)}section[id]{scroll-margin-top:76px}.nav{position:sticky;top:0;z-index:50;background:#fff0;border-bottom:1px solid transparent;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.nav.scrolled{background:#ffffffd1;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:76px}.nav-brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none}.nav-brand img.mark{display:block;width:36px;height:36px}.nav-brand img.wordmark{display:block;height:19px;width:auto}.nav-right,.nav-links{display:flex;align-items:center;gap:36px}.nav-links a{font-family:var(--font-latin);font-size:13px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--text-body)}.nav-links a:hover{color:var(--accent-hover)}.nav-toggle{display:none;width:44px;height:44px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-strong)}.nav-toggle svg{display:block}.nav-toggle .ico-close,.nav-toggle[aria-expanded=true] .ico-open{display:none}.nav-toggle[aria-expanded=true] .ico-close{display:block}.hero{position:relative;overflow:hidden;background:var(--surface-page)}.hero-grid{position:absolute;inset:0;background-image:linear-gradient(to right,rgba(44,55,68,.045) 1px,transparent 1px);background-size:calc(100% / 6) 100%;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 70%,transparent);mask-image:linear-gradient(to bottom,transparent,#000 18%,#000 70%,transparent)}.hero-glow{position:absolute;top:-180px;right:-120px;width:620px;height:620px;border-radius:50%;background:radial-gradient(circle,#5b9bd524,#5b9bd500 64%);pointer-events:none}.hero-inner{position:relative;min-height:calc(100vh - 76px);display:flex;flex-direction:column;justify-content:center;padding-top:64px;padding-bottom:96px;max-width:1000px}.hero h1{font-family:var(--font-jp);font-weight:900;font-size:clamp(2.1rem,5.4vw,4rem);line-height:1.34;letter-spacing:-.01em;color:var(--text-strong);margin:26px 0 0;text-wrap:balance}.hero h1 .accent{color:var(--accent)}.hero p{font-family:var(--font-jp);font-size:clamp(1rem,1.4vw,1.18rem);font-weight:400;line-height:1.95;color:var(--text-muted);margin:30px 0 0;max-width:600px}.hero-cta{display:flex;gap:14px;margin-top:40px;flex-wrap:wrap}.sec{padding-top:var(--section-y);padding-bottom:var(--section-y);border-top:1px solid var(--border)}.sec--page{background:var(--surface-page)}.sec--subtle{background:var(--surface-subtle)}.sec-title{font-family:var(--font-jp);font-weight:700;font-size:clamp(1.7rem,3vw,2.25rem);line-height:1.4;color:var(--text-strong);letter-spacing:-.01em}.about-grid{display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:72px;align-items:start}.about-head{position:sticky;top:120px}.about-head .sec-title{margin:20px 0 0}.about-body p{font-family:var(--font-jp);font-size:clamp(1rem,1.25vw,1.125rem);line-height:2;color:var(--text-body);margin:28px 0 0;text-wrap:pretty}.about-body p:first-child{margin-top:0}.mission{margin:52px 0 0;padding-left:28px;border-left:3px solid var(--accent)}.mission figcaption{font-family:var(--font-latin);font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-hover);margin-bottom:14px}.mission blockquote{margin:0;font-family:var(--font-mincho);font-weight:500;font-size:clamp(1.4rem,2.6vw,1.95rem);line-height:1.6;color:var(--text-strong)}.services-head{max-width:620px;margin-bottom:56px}.services-head .sec-title{margin:20px 0 14px}.services-head p{font-family:var(--font-jp);font-size:1.0625rem;line-height:1.9;color:var(--text-muted);margin:0}.services-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.svc{padding:36px 36px 34px}.svc-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px}.svc-no{font-family:var(--font-latin);font-weight:700;font-size:14px;letter-spacing:.12em;color:var(--ink-300)}.svc h3{font-family:var(--font-jp);font-weight:700;font-size:1.3125rem;line-height:1.5;color:var(--text-strong);margin:0 0 12px}.svc p{font-family:var(--font-jp);font-size:.9375rem;line-height:1.95;color:var(--text-body);margin:0}.svc-channels{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}.chip{font-family:var(--font-latin);font-size:11px;font-weight:500;letter-spacing:.04em;color:var(--text-muted);background:var(--ink-50);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px 11px}a.chip{transition:color var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}a.chip:hover{color:var(--accent-hover);border-color:var(--accent);background:var(--blue-50, #f1f7fc)}.contact-grid{display:grid;grid-template-columns:minmax(260px,380px) 1fr;gap:72px;align-items:start}.contact-head .sec-title{margin:20px 0 18px}.contact-head p{font-family:var(--font-jp);font-size:1.0625rem;line-height:1.95;color:var(--text-body);margin:0 0 28px}.contact-mail{display:inline-flex;align-items:center;gap:10px;font-family:var(--font-latin);font-size:15px;font-weight:500;color:var(--text-strong);border-bottom:1px solid var(--border-strong);padding-bottom:4px}.contact-mail:hover{color:var(--text-strong)}.contact-mail .ico{color:var(--accent)}.contact-card{padding:40px}.contact-form{display:flex;flex-direction:column;gap:20px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.contact-success{text-align:center;padding:40px 0}.contact-success .check{width:56px;height:56px;border-radius:50%;background:var(--status-active-bg);color:var(--status-active);display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 20px}.contact-success h3{font-family:var(--font-jp);font-weight:700;font-size:1.25rem;color:var(--text-strong);margin:0 0 10px}.contact-success p{font-family:var(--font-jp);font-size:.9375rem;line-height:1.9;color:var(--text-muted);margin:0}.contact-error{font-family:var(--font-jp);font-size:.875rem;line-height:1.7;color:#b4232a;background:#fdecec;border:1px solid rgba(180,35,42,.18);border-radius:var(--radius-sm);padding:12px 14px;margin:16px 0 0}.footer{background:var(--surface-dark);color:var(--text-on-dark)}.footer-top{display:flex;justify-content:space-between;align-items:flex-start;gap:48px;padding-top:80px;padding-bottom:56px}.footer-brand{max-width:420px}.footer-lockup{display:flex;align-items:center;gap:13px}.footer-tile{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:12px;background:var(--white)}.footer-tile img{display:block;width:38px;height:38px}.footer-wordmark{display:block;height:22px;width:auto}.footer-tag{font-family:var(--font-jp);font-size:.9375rem;line-height:1.9;color:var(--text-on-dark-muted);margin:18px 0 0}.footer-nav-cols{display:flex;gap:56px;flex-wrap:wrap}.footer-col-label{font-family:var(--font-latin);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-400);margin-bottom:14px}.footer-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}.footer-col a{font-family:var(--font-jp);font-size:.875rem;color:var(--text-on-dark-muted)}.footer-col a:hover{color:var(--white)}.footer-follow{display:flex;flex-direction:column;gap:16px}.footer-follow-label{font-family:var(--font-latin);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--blue-400)}.socials{display:flex;gap:12px;flex-wrap:wrap}.social{width:46px;height:46px;border-radius:50%;border:1px solid var(--border-dark);background:transparent;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.social:hover{border-color:#ffffff80;background:#ffffff0f}.social img{display:block;width:18px;height:18px;opacity:.62;transition:opacity var(--dur) var(--ease-out)}.social:hover img{opacity:1}.social .note-wm{font-family:var(--font-latin);font-weight:700;font-size:13px;letter-spacing:-.01em;color:var(--text-on-dark-muted);transition:color var(--dur) var(--ease-out)}.social:hover .note-wm{color:var(--white)}.footer-bottom{border-top:1px solid var(--border-dark)}.footer-bottom-inner{display:flex;justify-content:space-between;align-items:center;padding-top:24px;padding-bottom:24px;gap:16px;flex-wrap:wrap}.footer-bottom-inner span{font-family:var(--font-latin);font-size:12px;color:var(--text-on-dark-muted)}.footer-copy{letter-spacing:.02em}.footer-tagline{letter-spacing:.04em}.crumbs{padding-top:24px}.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-family:var(--font-jp);font-size:.8125rem;color:var(--text-muted)}.crumbs li{display:inline-flex;align-items:center;gap:8px}.crumbs li:after{content:"/";color:var(--ink-300)}.crumbs li:last-child:after{content:""}.crumbs a{color:var(--text-muted)}.crumbs a:hover{color:var(--accent-hover)}.crumbs [aria-current=page]{color:var(--text-strong)}.page-head{padding-top:48px;padding-bottom:8px}.page-head h1{font-family:var(--font-jp);font-weight:800;font-size:clamp(1.8rem,4vw,2.5rem);line-height:1.35;color:var(--text-strong);margin:16px 0 0;letter-spacing:-.01em}.page-head .lead{font-family:var(--font-jp);font-size:1.0625rem;line-height:1.9;color:var(--text-muted);margin:16px 0 0;max-width:720px}.cat-nav{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0}.cat-nav a{font-family:var(--font-jp);font-size:.875rem;font-weight:500;color:var(--text-body);background:var(--surface-page);border:1px solid var(--border);border-radius:var(--radius-pill);padding:8px 16px;transition:all var(--dur-fast) var(--ease-out)}.cat-nav a:hover{border-color:var(--accent);color:var(--accent-hover)}.cat-nav a[aria-current=true]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.post-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}.post-card{display:flex;flex-direction:column;padding:26px 26px 24px;height:100%}.post-card .post-cat{font-family:var(--font-latin);font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-hover)}.post-card h2,.post-card h3{font-family:var(--font-jp);font-weight:700;font-size:1.0625rem;line-height:1.55;color:var(--text-strong);margin:12px 0 0}.post-card .post-card-link{color:inherit}.post-card .post-card-link:hover{color:var(--accent-hover)}.post-card .post-card-link:after{content:"";position:absolute;inset:0}.post-card .excerpt{font-family:var(--font-jp);font-size:.875rem;line-height:1.85;color:var(--text-muted);margin:12px 0 0}.post-card .post-meta{margin-top:auto;padding-top:18px}.post-meta{font-family:var(--font-latin);font-size:12px;color:var(--text-muted);display:flex;gap:10px;align-items:center;flex-wrap:wrap}.post{padding-bottom:96px}.post-header{padding-top:28px;max-width:760px}.post-header h1{font-family:var(--font-jp);font-weight:800;font-size:clamp(1.8rem,4.2vw,2.6rem);line-height:1.4;color:var(--text-strong);margin:16px 0 0;letter-spacing:-.01em;text-wrap:balance}.post-header .post-meta{margin-top:20px}.post-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.prose{max-width:760px;margin-top:40px}.prose>*+*{margin-top:1.5em}.prose h2{font-family:var(--font-jp);font-weight:700;font-size:1.5rem;line-height:1.5;color:var(--text-strong);margin-top:2.4em;padding-bottom:.4em;border-bottom:1px solid var(--border);scroll-margin-top:90px}.prose h3{font-family:var(--font-jp);font-weight:700;font-size:1.2rem;line-height:1.55;color:var(--text-strong);margin-top:2em;scroll-margin-top:90px}.prose p{font-size:1.0625rem;line-height:2;color:var(--text-body)}.prose a{color:var(--accent-hover);text-decoration:underline;text-underline-offset:3px}.prose a:hover{color:var(--accent-press)}.prose ul,.prose ol{padding-left:1.4em;line-height:1.95;color:var(--text-body)}.prose li+li{margin-top:.5em}.prose strong{color:var(--text-strong);font-weight:700}.prose blockquote{margin:0;padding:4px 0 4px 22px;border-left:3px solid var(--accent);color:var(--text-muted);font-style:normal}.prose code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.9em;background:var(--ink-100);border:1px solid var(--border);border-radius:6px;padding:.1em .4em}.prose pre{background:var(--ink-950);color:var(--ink-100);border-radius:var(--radius-sm);padding:18px 20px;overflow-x:auto;font-size:.875rem;line-height:1.7}.prose pre code{background:none;border:none;padding:0;color:inherit}.prose img{max-width:100%;height:auto;border-radius:var(--radius-sm)}.prose table{width:100%;border-collapse:collapse;font-size:.9375rem}.prose th,.prose td{border:1px solid var(--border);padding:10px 12px;text-align:left}.prose th{background:var(--ink-50);font-weight:700;color:var(--text-strong)}.toc{max-width:760px;margin-top:36px;padding:20px 24px;background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-lg)}.toc-label{font-family:var(--font-latin);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--accent-hover);margin-bottom:12px}.toc ol{margin:0;padding-left:1.2em}.toc li{font-size:.9375rem;line-height:1.8}.toc a{color:var(--text-body)}.toc a:hover{color:var(--accent-hover)}.cta-box{max-width:760px;margin-top:48px;padding:32px;background:var(--accent-tint);border:1px solid var(--blue-200);border-radius:var(--radius-lg)}.cta-box h3{font-family:var(--font-jp);font-weight:700;font-size:1.2rem;color:var(--text-strong);margin:0 0 8px}.cta-box p{font-family:var(--font-jp);font-size:.9375rem;line-height:1.9;color:var(--text-body);margin:0 0 18px}.cta-box .cta-actions{display:flex;gap:12px;flex-wrap:wrap}.related{max-width:760px;margin-top:64px}.related .related-label{font-family:var(--font-jp);font-weight:700;font-size:1.15rem;color:var(--text-strong);margin:0 0 20px}.tag{font-family:var(--font-jp);font-size:.8125rem;color:var(--text-muted);background:var(--ink-50);border:1px solid var(--border);border-radius:var(--radius-pill);padding:4px 12px}.tag:hover{border-color:var(--accent);color:var(--accent-hover)}.empty{max-width:760px;margin-top:40px;padding:40px;text-align:center;color:var(--text-muted);background:var(--surface-subtle);border:1px dashed var(--border-strong);border-radius:var(--radius-lg)}.sticky-cta{display:none;position:fixed;left:0;right:0;bottom:0;z-index:60;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:#ffffffeb;backdrop-filter:saturate(180%) blur(12px);-webkit-backdrop-filter:saturate(180%) blur(12px);border-top:1px solid var(--border)}@media(max-width:1000px){.post-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:860px){:root{--section-y: var(--section-y-sm)}.about-grid,.contact-grid{grid-template-columns:1fr;gap:36px}.about-head{position:static}.footer-top{flex-direction:column}}@media(max-width:720px){.services-grid{grid-template-columns:1fr}.nav-links.is-desktop{display:none}.nav-toggle{display:inline-flex}.nav-links.is-mobile{display:none;position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;background:#fffffff7;backdrop-filter:saturate(180%) blur(14px);-webkit-backdrop-filter:saturate(180%) blur(14px);border-bottom:1px solid var(--border);padding:8px 0 16px}.nav-links.is-mobile.open{display:flex}.nav-links.is-mobile a{padding:14px var(--gutter);border-bottom:1px solid var(--border);font-size:14px}.post-grid{grid-template-columns:1fr}.sticky-cta{display:block}}@media(max-width:560px){.form-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}html{scroll-behavior:auto}}
