:root{--color-primary: #1e3a8a;--color-primary-light: #3b82f6;--color-primary-dark: #1e40af;--color-secondary: #0f766e;--color-secondary-light: #14b8a6;--color-secondary-dark: #134e4a;--color-accent: #ea580c;--color-accent-light: #f97316;--color-accent-dark: #c2410c;--color-neutral-50: #f8fafc;--color-neutral-100: #f1f5f9;--color-neutral-200: #e2e8f0;--color-neutral-300: #cbd5e1;--color-neutral-400: #94a3b8;--color-neutral-500: #64748b;--color-neutral-600: #475569;--color-neutral-700: #334155;--color-neutral-800: #1e293b;--color-neutral-900: #0f172a;--color-success: #059669;--color-warning: #d97706;--color-error: #dc2626;--color-info: --color-primary;--color-bg-primary: var(--color-neutral-50);--color-bg-secondary: #ffffff;--color-bg-tertiary: var(--color-neutral-100);--color-bg-dark: var(--color-neutral-900);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-tertiary: var(--color-neutral-500);--color-text-inverse: #ffffff;--color-border-light: var(--color-neutral-200);--color-border-medium: var(--color-neutral-300);--color-border-dark: var(--color-neutral-400);--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / .25);--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--spacing-5xl: 8rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-size-7xl: 4.5rem;--font-size-8xl: 6rem;--font-size-9xl: 8rem;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--font-weight-thin: 100;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-weight-black: 900;--transition-fast: .15s ease-in-out;--transition-normal: .25s ease-in-out;--transition-slow: .35s ease-in-out;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080}@media (prefers-color-scheme: dark){:root{--color-bg-primary: var(--color-neutral-900);--color-bg-secondary: var(--color-neutral-800);--color-bg-tertiary: var(--color-neutral-700);--color-text-primary: var(--color-neutral-100);--color-text-secondary: var(--color-neutral-300);--color-text-tertiary: var(--color-neutral-400);--color-border-light: var(--color-neutral-700);--color-border-medium: var(--color-neutral-600);--color-border-dark: var(--color-neutral-500)}}@keyframes fadeIn{to{opacity:1}}@keyframes slideUp{to{opacity:1;transform:translateY(0)}}:root{--font-family-sans: "Noto Sans JP", "M PLUS 1p", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-family-mono: "JetBrains Mono", "SF Mono", Monaco, Inconsolata, "Roboto Mono", "Source Code Pro", monospace;--font-family-japanese: "Noto Sans JP", "M PLUS 1p", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "Meiryo", sans-serif}html{font-family:var(--font-family-sans);font-size:16px;line-height:var(--line-height-normal);color:var(--color-text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;padding:0;background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-family-sans)}h1,.h1{font-size:var(--font-size-5xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0}@media (max-width: 768px){h1,.h1{font-size:var(--font-size-4xl)}}h1.display,.h1.display{font-size:var(--font-size-7xl);font-weight:var(--font-weight-extrabold);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (max-width: 768px){h1.display,.h1.display{font-size:var(--font-size-5xl)}}h2,.h2{font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}@media (max-width: 768px){h2,.h2{font-size:var(--font-size-2xl)}}h3,.h3{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}h4,.h4{font-size:var(--font-size-lg);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0}h5,.h5{font-size:var(--font-size-base);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);color:var(--color-text-primary);margin:0 0 var(--spacing-xs) 0}h6,.h6{font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);line-height:var(--line-height-snug);color:var(--color-text-secondary);margin:0 0 var(--spacing-xs) 0;text-transform:uppercase;letter-spacing:.05em}p,.body{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin:0 0 var(--spacing-md) 0}.lead{font-size:var(--font-size-lg);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin:0 0 var(--spacing-lg) 0}.small,small{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-tertiary)}.japanese{font-family:var(--font-family-japanese);font-feature-settings:"palt" 1}.japanese.title{font-weight:var(--font-weight-bold);letter-spacing:.02em}code,.code{font-family:var(--font-family-mono);font-size:.875em;background:var(--color-bg-tertiary);padding:.125rem .25rem;border-radius:var(--radius-sm);color:var(--color-text-primary)}pre{font-family:var(--font-family-mono);font-size:var(--font-size-sm);line-height:var(--line-height-relaxed);background:var(--color-bg-tertiary);padding:var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto;color:var(--color-text-primary)}pre code{background:none;padding:0}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-dark);text-decoration:underline}a:focus{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}ul,ol{margin:0 0 var(--spacing-md) 0;padding-left:var(--spacing-lg)}ul li,ol li{margin-bottom:var(--spacing-xs);line-height:var(--line-height-relaxed);color:var(--color-text-secondary)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-thin{font-weight:var(--font-weight-thin)}.font-light{font-weight:var(--font-weight-light)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.font-extrabold{font-weight:var(--font-weight-extrabold)}.font-black{font-weight:var(--font-weight-black)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-inverse{color:var(--color-text-inverse)}.text-brand{color:var(--color-primary)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navigation{background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:var(--z-sticky);transition:all var(--transition-normal)}.navigation__container{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 768px){.navigation__container{padding:0 var(--spacing-md)}}.navigation__container{padding-top:var(--spacing-md)!important;padding-bottom:var(--spacing-md)!important}.navigation__logo{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);text-decoration:none}.navigation__logo:hover{color:var(--color-primary-dark);text-decoration:none}.navigation__menu{display:flex;align-items:center;gap:var(--spacing-lg);list-style:none;margin:0;padding:0}@media (max-width: 768px){.navigation__menu{display:none}}.navigation__link{color:var(--color-text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-fast)}.navigation__link:hover{color:var(--color-primary);background:var(--color-bg-tertiary);text-decoration:none}.navigation__link.active{color:var(--color-primary);background:var(--color-bg-tertiary)}.navigation__mobile-toggle{display:none;background:none;border:none;color:var(--color-text-primary);font-size:var(--font-size-lg);cursor:pointer}@media (max-width: 768px){.navigation__mobile-toggle{display:block}}.navigation__mobile-menu{background:#fffffffa;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--color-border-light)}@media (min-width: 769px){.navigation__mobile-menu{display:none}}.navigation__mobile-container{display:flex;flex-direction:column;gap:var(--spacing-xs);padding-top:var(--spacing-md);padding-bottom:var(--spacing-md);max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 768px){.navigation__mobile-container{padding:0 var(--spacing-md)}}.navigation__mobile-link{color:var(--color-text-secondary);text-decoration:none;font-weight:var(--font-weight-medium);padding:var(--spacing-md);border-radius:var(--radius-md);transition:all var(--transition-fast)}.navigation__mobile-link:hover{color:var(--color-primary);background:var(--color-bg-tertiary);text-decoration:none}.navigation__mobile-link.active{color:var(--color-primary);background:var(--color-bg-tertiary)}.card{background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:all var(--transition-normal)}.card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.card--hover{cursor:pointer}.card--hover:hover{transform:translateY(-4px);box-shadow:var(--shadow-xl)}.card--gradient{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-text-inverse);border:none}.card__header{margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-light)}.card__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;margin-bottom:var(--spacing-xs)}.card__subtitle{font-size:var(--font-size-sm);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--color-text-tertiary);margin:0}.card__content{margin-bottom:var(--spacing-md)}.card__footer{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--color-border-light);display:flex;align-items:center;justify-content:space-between}.link-card{background:var(--color-bg-secondary);border-radius:var(--radius-xl);padding:var(--spacing-lg);box-shadow:var(--shadow-md);transition:all var(--transition-normal);display:flex;align-items:center;justify-content:space-between;text-decoration:none;color:inherit;background:linear-gradient(135deg,var(--color-bg-secondary),var(--color-bg-tertiary));border:1px solid var(--color-border-light)}.link-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.link-card:hover{text-decoration:none;color:var(--color-text-inverse);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));transform:translateY(-2px) scale(1.02);box-shadow:var(--shadow-xl)}.link-card__content{flex:1}.link-card__title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);margin-bottom:var(--spacing-xs);transition:color var(--transition-fast)}.link-card__url{font-size:var(--font-size-sm);color:var(--color-text-tertiary);transition:color var(--transition-fast)}.link-card__icon{color:var(--color-text-tertiary);transition:all var(--transition-fast)}.link-card:hover .link-card__icon{color:var(--color-text-inverse);transform:translate(4px)}.link-card--disabled{opacity:.6;cursor:not-allowed;background:linear-gradient(135deg,var(--color-neutral-100),var(--color-neutral-200))}.link-card--disabled:hover{transform:none;background:linear-gradient(135deg,var(--color-neutral-100),var(--color-neutral-200));color:inherit;box-shadow:var(--shadow-md)}.section{padding:var(--spacing-4xl) 0}@media (max-width: 768px){.section{padding:var(--spacing-3xl) 0}}.section__container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 768px){.section__container{padding:0 var(--spacing-md)}}.section__header{display:flex;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-2xl)}.section__icon{display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-text-inverse);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);transition:transform var(--transition-normal)}.section__icon:hover{transform:scale(1.1) rotate(5deg)}.section__title{background:linear-gradient(135deg,var(--color-text-primary),var(--color-text-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}@media (max-width: 768px){.section__title{font-size:var(--font-size-2xl)}}.section__content{background:#ffffffb3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--color-border-light);border-radius:var(--radius-2xl);padding:var(--spacing-2xl);box-shadow:var(--shadow-xl);transition:all var(--transition-normal)}.section__content:hover{transform:translateY(-4px);box-shadow:var(--shadow-2xl)}.contact-card{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--spacing-lg)}.contact-card__item{background:var(--color-bg-secondary);border:1px solid var(--color-border-light);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-md);transition:all var(--transition-normal);text-align:center;background:linear-gradient(135deg,var(--color-bg-secondary),var(--color-bg-tertiary))}.contact-card__item:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.contact-card__item--primary{background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));color:var(--color-text-inverse)}.contact-card__icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;background:var(--color-accent);color:var(--color-text-inverse);border-radius:var(--radius-full);margin:0 auto var(--spacing-lg) auto;box-shadow:var(--shadow-lg)}.contact-card__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-snug);color:var(--color-text-primary);margin:0 0 var(--spacing-sm) 0;margin-bottom:var(--spacing-md)}.contact-card__content{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin:0 0 var(--spacing-md) 0;margin-bottom:var(--spacing-lg)}.contact-card__link{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);font-weight:var(--font-weight-medium);font-size:var(--font-size-sm);line-height:var(--line-height-tight);text-decoration:none;border:none;cursor:pointer;transition:all var(--transition-fast);background:var(--color-primary);color:var(--color-text-inverse)}.contact-card__link:focus{outline:2px solid var(--color-primary);outline-offset:2px}.contact-card__link:disabled{opacity:.5;cursor:not-allowed}.contact-card__link:hover:not(:disabled){background:var(--color-primary-dark);transform:translateY(-1px);box-shadow:var(--shadow-md)}.contact-card__item--primary .contact-card__link{background:var(--color-accent)}.contact-card__item--primary .contact-card__link:hover{background:var(--color-accent-dark)}.page{min-height:100vh;background:linear-gradient(135deg,var(--color-bg-primary),var(--color-bg-tertiary))}.page__container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 768px){.page__container{padding:0 var(--spacing-md)}}.page__container{padding-top:var(--spacing-2xl)!important;padding-bottom:var(--spacing-2xl)!important}.page__header{text-align:center;margin-bottom:var(--spacing-3xl)}.page__title{font-size:var(--font-size-5xl);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0 0 var(--spacing-lg) 0}@media (max-width: 768px){.page__title{font-size:var(--font-size-4xl)}}.page__title.display{font-size:var(--font-size-6xl);font-weight:var(--font-weight-extrabold);background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--spacing-lg)}@media (max-width: 768px){.page__title.display{font-size:var(--font-size-4xl)}}.page__subtitle{font-size:var(--font-size-xl);color:var(--color-text-secondary);font-weight:var(--font-weight-light);margin-bottom:var(--spacing-lg)}.page__description{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin:0 0 var(--spacing-md) 0;font-size:var(--font-size-lg);max-width:600px;margin:0 auto var(--spacing-2xl) auto}.empty-state{text-align:center;padding:var(--spacing-4xl) var(--spacing-lg)}.empty-state__icon{width:6rem;height:6rem;margin:0 auto var(--spacing-lg) auto;color:var(--color-text-tertiary)}.empty-state__title{color:var(--color-text-secondary);margin-bottom:var(--spacing-md);font-size:var(--font-size-3xl);font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--color-text-primary);margin:0 0 var(--spacing-md) 0}@media (max-width: 768px){.empty-state__title{font-size:var(--font-size-2xl)}}.empty-state__description{font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-relaxed);color:var(--color-text-secondary);margin:0 0 var(--spacing-md) 0;max-width:400px;margin:0 auto}.footer{background:linear-gradient(135deg,var(--color-bg-secondary),var(--color-bg-tertiary));border-top:1px solid var(--color-border-light);margin-top:var(--spacing-4xl)}.footer__container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-lg)}@media (max-width: 768px){.footer__container{padding:0 var(--spacing-md)}}.footer__container{padding-top:var(--spacing-3xl)!important;padding-bottom:var(--spacing-2xl)!important}.footer__content{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--spacing-2xl);margin-bottom:var(--spacing-3xl)}@media (max-width: 768px){.footer__content{grid-template-columns:1fr;gap:var(--spacing-xl);text-align:center}}.footer__section{display:flex;flex-direction:column;gap:var(--spacing-md)}.footer__title{font-size:var(--font-size-xl);font-weight:var(--font-weight-bold);color:var(--color-primary);margin:0}.footer__subtitle{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0}.footer__description{color:var(--color-text-secondary);line-height:var(--line-height-relaxed);margin:0}.footer__links{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.footer__link{color:var(--color-text-secondary);text-decoration:none;transition:color var(--transition-fast);font-weight:var(--font-weight-medium)}.footer__link:hover{color:var(--color-primary);text-decoration:none}.footer__bottom{padding-top:var(--spacing-lg);border-top:1px solid var(--color-border-light);text-align:center}.footer__copyright{color:var(--color-text-tertiary);font-size:var(--font-size-sm);margin:0}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;padding:0;background:var(--color-bg-primary);color:var(--color-text-primary);font-family:var(--font-family-sans);line-height:var(--line-height-normal);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*:focus{outline:2px solid var(--color-primary);outline-offset:2px}::selection{background:var(--color-primary);color:var(--color-text-inverse)}::-moz-selection{background:var(--color-primary);color:var(--color-text-inverse)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:var(--color-bg-tertiary)}::-webkit-scrollbar-thumb{background:var(--color-border-medium);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-dark)}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}.navigation{display:none}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
