:root[data-cg-theme=coral]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#fff;--surface:#fff;--surface2:#f6f6f6;--ink:#212224;--sub:#5e5e5e;--faint:#666;--line:#e4e4e4;--ai:#5840d6;--ai-t:#eeebfc;--mw:#1566c9;--mw-t:#e4effb;--dev:#a35600;--dev-t:#fbeedd;--ok:#17733a;--ok-t:#e3f3e8;--warn:#8a5300;--warn-t:#fdf0d8;--focus:#212224;--scrim:#1e1e1e80;--th-geo:"Avenir Next", Avenir, "Century Gothic", "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Yu Gothic", Meiryo, system-ui, sans-serif;--body:var(--th-geo);--disp:var(--th-geo);--th-coral:#ff3d5f;--th-coral-ink:#d6134a;--th-coral-grad:linear-gradient(90deg, #e0204d, #dc1c60 50%, #d1096a);--th-pill-border:#dcdcdc;--th-badge-shadow:0 0 0 1px #0000000a, 0 2px 6px #00000024;--th-lift:0 6px 16px #0000001f;--th-bw:1px;--th-r-card:24px;--th-r-item:16px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:32px;--th-r-sheet:28px;--th-card-bg:#fff;--th-card-border:#e9e9e9;--th-card-border-hover:#dcdcdc;--th-card-shadow:0 1px 2px #0000000a, 0 6px 16px #00000014;--th-card-shadow-hover:0 2px 4px #0000000f, 0 12px 28px #00000024;--th-card-glow:none;--th-hover-transform:translateY(-2px);--th-bar-off:#8a8a8a;--th-h1-size:clamp(24px, 2.8vw, 38px);--th-h1-lh:1.2;--th-h1-ls:-.01em;--th-h1-mt:8px;--th-name-size:22px;--th-nm-lh:1.2;--th-h2-size:20px;--th-h2-lh:1.35;--th-v-size:clamp(34px, 8vw, 48px);--th-head-bg:#fff;--th-head-filter:none;--th-head-shadow:#00000014;--th-backdrop:none;--th-btn-bg:transparent;--th-btn-border:transparent;--th-btn-bg-hover:#f6f6f6;--th-modal-dur:.42s;--th-sheet-dur:.42s;--th-modal-ease:cubic-bezier(.2, 0, 0, 1);--th-modal-from:translateY(48px);--th-rv-below:thRvRise}:root[data-cg-theme=coral] .cg-b-card .label{color:var(--sub);letter-spacing:.04em;font-size:12px}:root[data-cg-theme=coral] .cg-b-more{font:600 12px/1.5 var(--th-geo);color:var(--ink);background:#f1f1f1;border-color:#0000;padding:3px 12px}:root[data-cg-theme=coral] .cg-b-card:hover .cg-b-more{color:var(--ink);background:#e8e8e8;border-color:#0000}:root[data-cg-theme=coral] .cg-b-profile{background:linear-gradient(#fff 0%,#f6f6f6 100%)}:root[data-cg-theme=coral] .cg-b-profile .cg-b-nm b{font-weight:600}:root[data-cg-theme=coral] .cg-b-profile .cg-b-nm span{font-size:14px}:root[data-cg-theme=coral] .cg-b-profile h1{font-weight:600}:root[data-cg-theme=coral] .cg-b-profile h1 em{color:var(--th-coral-ink);background:0 0}:root[data-cg-theme=coral] .cg-b-photo{box-shadow:0 0 0 3px #fff,0 4px 12px #00000029}:root[data-cg-theme=coral] .cg-b-card.cg-b-metrics{--th-card-shadow-hover:none;box-shadow:none;background:0 0;border-width:0;gap:12px;overflow:visible}:root[data-cg-theme=coral] .cg-b-m{transition:box-shadow .3s var(--th-ease-out);border:0;border-radius:20px;padding-top:17px;padding-bottom:19px}:root[data-cg-theme=coral] .cg-b-m:nth-child(4n+1){background:radial-gradient(120% 100% at 100% 0,#ffe1e7,#0000 60%),linear-gradient(160deg,#fff3ea,#ffeaf0)}:root[data-cg-theme=coral] .cg-b-m:nth-child(4n+2){background:radial-gradient(120% 100% at 0 0,#dcebff,#0000 60%),linear-gradient(160deg,#eef5ff,#f4f8ff)}:root[data-cg-theme=coral] .cg-b-m:nth-child(4n+3){background:radial-gradient(120% 100% at 100% 100%,#e9e3ff,#0000 60%),linear-gradient(160deg,#f5f2ff,#f1eeff)}:root[data-cg-theme=coral] .cg-b-m:nth-child(4n+4){background:radial-gradient(120% 100% at 0 100%,#dff3e8,#0000 60%),linear-gradient(160deg,#f1faf4,#eef8f2)}:root[data-cg-theme=coral] .cg-b-metrics:hover .cg-b-m{box-shadow:var(--th-lift)}:root[data-cg-theme=coral] .cg-b-m .cg-b-l{color:var(--ink);box-shadow:var(--th-badge-shadow);background:#fff;border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:12px;font-weight:600;line-height:1.5}:root[data-cg-theme=coral] .cg-b-m .cg-b-v{font-family:var(--th-geo);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-weight:600}:root[data-cg-theme=coral] .cg-b-m .cg-b-bar{background:#ffffffd9}:root[data-cg-theme=coral] .cg-b-m :is(.cg-b-line,.cg-b-bar){border-radius:999px}:root[data-cg-theme=coral] .cg-b-sq{border-radius:50%}:root[data-cg-theme=coral] .cg-b-s .cg-b-no{font:600 11.5px/1.5 var(--mono);box-shadow:var(--th-badge-shadow);background:#fff;border-radius:999px;align-self:flex-start;padding:2px 10px}:root[data-cg-theme=coral] .cg-b-s:after{display:none}:root[data-cg-theme=coral] .cg-b-s h2{color:var(--ink);letter-spacing:-.01em;font-weight:600}:root[data-cg-theme=coral] :is(.cg-b-dm button,.cg-b-backbtn){border-color:var(--th-pill-border);color:var(--ink);background:#fff}:root[data-cg-theme=coral] :is(.cg-b-dm button,.cg-b-backbtn):hover{border-color:var(--ink);background:#fff}:root[data-cg-theme=coral] .cg-b-sk:hover{background:var(--surface2)}:root[data-cg-theme=coral] .cg-b-sk .cg-b-go{color:var(--th-coral-ink)}:root[data-cg-theme=coral] .cg-b-hm .cg-b-c{border-radius:4px}:root[data-cg-theme=coral] .cg-b-era{border-color:var(--th-pill-border);color:var(--sub);background:#fff}:root[data-cg-theme=coral] .cg-b-era :is(.cg-b-rg,.cg-b-d,.cg-b-n){opacity:1}:root[data-cg-theme=coral] .cg-b-era b{color:var(--ink)}:root[data-cg-theme=coral] .cg-b-era:hover{border-color:var(--ink)}:root[data-cg-theme=coral] .cg-b-era[aria-pressed=true]{color:var(--ink);border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink);background:#f6f6f6}:root[data-cg-theme=coral] .cg-b-gantt .cg-b-bar{border-radius:999px}:root[data-cg-theme=coral] .cg-b-gantt .cg-b-bar.cg-b-on{background:var(--th-coral-ink)}:root[data-cg-theme=coral] .cg-b-gantt .cg-b-band{background:#fff0f3}:root[data-cg-theme=coral] .cg-b-ec{background:0 0;border-color:#0000;overflow:visible}:root[data-cg-theme=coral] .cg-b-ec:hover{border-color:#0000}:root[data-cg-theme=coral] .cg-b-ec .cg-b-im{border-radius:16px}:root[data-cg-theme=coral] .cg-b-ec .cg-b-tx{padding:10px 2px 4px}:root[data-cg-theme=coral] .cg-b-ec b{color:var(--ink);font-size:14.5px;font-weight:600}:root[data-cg-theme=coral] .cg-b-ec .cg-b-sb{color:var(--ink);font-weight:500}:root[data-cg-theme=coral] .cg-b-ec .cg-b-pd{color:var(--sub)}:root[data-cg-theme=coral] .cg-b-ec .cg-b-im.cg-b-none{color:var(--sub);background:radial-gradient(120% 100% at 100% 0,#ffe1e7,#0000 60%),linear-gradient(160deg,#fff3ea,#f5f2ff)}:root[data-cg-theme=coral] .cg-project-item{background:#fff;border-color:#e9e9e9}:root[data-cg-theme=coral] .cg-project-item:hover{border-color:var(--th-pill-border);box-shadow:var(--th-lift)}:root[data-cg-theme=coral] .cg-modal{--th-accent:var(--th-coral-ink);--th-accent-grad:var(--th-coral-grad);--th-modal-bg:#fff;--th-modal-border:transparent;--th-modal-shadow:0 8px 28px #00000047;--th-stage:#f6f6f6}:root[data-cg-theme=coral] .cg-modal-header:after{height:0}:root[data-cg-theme=coral] .cg-modal-kicker{color:var(--ink);font:600 12px/1 var(--th-geo);letter-spacing:.02em;box-shadow:var(--th-badge-shadow);background:#fff;padding:6px 12px}:root[data-cg-theme=coral] .cg-modal-kicker:before{box-shadow:none}:root[data-cg-theme=coral] .cg-modal-body h3{letter-spacing:-.01em;font-size:24px;font-weight:600;line-height:1.3}:root[data-cg-theme=coral] .cg-section-label{font:600 15px/1.4 var(--th-geo);letter-spacing:0;color:var(--ink)}:root[data-cg-theme=coral] .cg-section-label:before{display:none}:root[data-cg-theme=coral] .cg-phase-grid{gap:6px}:root[data-cg-theme=coral] .cg-phase-grid span:nth-child(n){border:1px solid var(--th-pill-border);color:var(--sub);background:#fff;border-radius:999px}:root[data-cg-theme=coral] .cg-phase-grid span.on{border:2px solid var(--ink);color:var(--ink);background:#f6f6f6;padding:6px 0;font-weight:700}:root[data-cg-theme=coral] .cg-tech-stack span{background:#f6f6f6;border:0}:root[data-cg-theme=coral] .cg-ext-link{background:var(--ink);border-color:var(--ink);color:#fff;border-radius:8px;padding:12px 22px;font-weight:600}:root[data-cg-theme=coral] .cg-ext-link:hover{background:#000}:root[data-cg-theme=coral] .cg-ai-fab{background:var(--th-coral-grad);color:#fff;box-shadow:0 6px 16px #d6134a52}:root[data-cg-theme=coral] .cg-ai-fab .cg-ai-dot{--ai:#fff;background:#fff}:root[data-cg-theme=coral] .cg-theme-switch .cg-theme-toggle{border-color:var(--th-pill-border);box-shadow:0 2px 4px #00000014,0 4px 12px #00000014}@media (forced-colors:active){:root[data-cg-theme=coral] :is(.cg-b-m,.cg-b-ec .cg-b-im.cg-b-none,.cg-b-profile){background-image:none}}
:root[data-cg-theme=ribbon]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f7f9fd;--surface:#fff;--surface2:#eef2f8;--ink:#0a1c33;--sub:#4f6079;--faint:#5b6a82;--line:#e1e7ef;--ai:#5a3ef6;--ai-t:#efebff;--mw:#1d62d1;--mw-t:#e6efff;--dev:#b14a0a;--dev-t:#fdeee2;--ok:#117a4b;--ok-t:#e0f5ea;--warn:#8a5300;--warn-t:#fdf0d8;--focus:#5a3ef6;--scrim:#0a163473;--body:var(--th-sys);--disp:var(--th-sys);--th-violet:#5a3ef6;--th-violet-hover:#4a2fe0;--th-slate:#607089;--th-eyebrow:#5a3ef6;--th-guide:#e1e7ef;--th-ribbon:linear-gradient(90deg, #ffb86a, #ff6aa8 35%, #9a72ff 68%, #7ad6ff);--th-shadow-sm:0 0 0 1px #0a1c330d, 0 2px 5px -1px #3034601f, 0 1px 3px -1px #00000024;--th-shadow-lg:0 0 0 1px #0a1c330a, 0 30px 60px -12px #30346040, 0 18px 36px -18px #0000004d;--th-bw:0px;--th-r-card:6px;--th-r-item:6px;--th-r-pill:4px;--th-r-chip:4px;--th-r-modal:10px;--th-r-sheet:12px;--th-card-bg:#fff;--th-card-border:transparent;--th-card-border-hover:transparent;--th-card-shadow:0 0 0 1px #0a1c330d, 0 14px 30px -12px #3034602e, 0 6px 12px -8px #0000001a;--th-card-shadow-hover:var(--th-shadow-lg);--th-card-glow:none;--th-hover-transform:translateY(-2px);--th-bar-off:#8591a3;--th-h1-size:clamp(26px, 3vw, 42px);--th-h1-lh:1.15;--th-h1-ls:-.02em;--th-h1-mt:8px;--th-name-size:20px;--th-nm-lh:1.2;--th-h2-size:21px;--th-h2-lh:1.3;--th-v-size:clamp(36px, 8vw, 48px);--th-head-bg:#fff;--th-head-filter:none;--th-head-shadow:#3034601f;--th-backdrop:none;--th-btn-bg:#fff;--th-btn-border:#d5dbe3;--th-btn-bg-hover:#f5f3ff;--th-modal-dur:.5s;--th-modal-ease:var(--th-ease-out);--th-modal-from:translateY(12px) scale(.98);--th-rv-below:thRvRise}@media (min-width:601px){:root[data-cg-theme=ribbon] body:before{background:linear-gradient(var(--th-guide), var(--th-guide)) calc(50% - min(608px, 50vw - 12px)) 0 / 1px 100% no-repeat, linear-gradient(var(--th-guide), var(--th-guide)) calc(50% + min(608px, 50vw - 12px)) 0 / 1px 100% no-repeat}}:root[data-cg-theme=ribbon] .cg-b-card .label{color:var(--th-eyebrow);letter-spacing:.02em;font-size:12px;font-weight:600}:root[data-cg-theme=ribbon] .cg-b-more{font:600 12px/1.5 var(--th-sys);color:var(--th-violet);background:#fff;border:1px solid #d5dbe3;border-radius:4px;align-items:center;gap:6px;padding:3px 10px 3px 12px;display:inline-flex;box-shadow:0 1px 2px #0a1c330f}:root[data-cg-theme=ribbon] .cg-b-more:after{content:"";border-top:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transform:rotate(45deg)}:root[data-cg-theme=ribbon] .cg-b-card:hover .cg-b-more{color:var(--th-violet);background:#f5f3ff;border-color:#c1c9d6}:root[data-cg-theme=ribbon] .cg-b-profile .cg-b-nm b{font-weight:500}:root[data-cg-theme=ribbon] .cg-b-profile .cg-b-nm span{font-size:14px}:root[data-cg-theme=ribbon] .cg-b-profile h1{color:var(--th-slate);font-weight:300}:root[data-cg-theme=ribbon] .cg-b-profile h1 em{color:var(--ink);background:0 0}:root[data-cg-theme=ribbon] .cg-b-photo{box-shadow:var(--th-shadow-sm)}@media (min-width:901px){:root[data-cg-theme=ribbon] .cg-b-profile:not(:has(.cg-b-avail)) h1{padding-right:96px}}@media (min-width:601px) and (max-width:900px){:root[data-cg-theme=ribbon] .cg-b-profile:not(:has(.cg-b-avail)) h1{padding-right:24px}}:root[data-cg-theme=ribbon] .cg-b-profile:not(:has(.cg-b-avail)):after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(30deg,#0000 74%,#ffffff73 78%,#0000 82%),linear-gradient(30deg,#0000 66%,#ffb86a 71%,#ff6aa8 79%,#9a72ff 87%,#7ad6ff 93%,#0000 97%);width:460px;height:170px;position:absolute;top:0;right:0}@media (max-width:900px){:root[data-cg-theme=ribbon] .cg-b-profile:not(:has(.cg-b-avail)):after{width:300px;height:110px}}@media (max-width:600px){:root[data-cg-theme=ribbon] .cg-b-profile:not(:has(.cg-b-avail)):after{background:var(--th-ribbon);width:auto;height:3px;left:0}}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=ribbon] .cg-b-profile.cg-b-in:after{animation:thRibIn 1.2s var(--th-ease-out) .15s backwards}}@keyframes thRibIn{0%{opacity:0;transform:translate(40px,-16px)}to{opacity:1;transform:none}}:root[data-cg-theme=ribbon] .cg-b-m .cg-b-v{font-family:var(--th-sys);letter-spacing:-.02em;color:var(--ink);font-weight:300}:root[data-cg-theme=ribbon] .cg-b-m .cg-b-v small{color:var(--sub);font-weight:400}:root[data-cg-theme=ribbon] .cg-b-metrics :is(.cg-b-line,.cg-b-bar){border-radius:2px;height:4px}:root[data-cg-theme=ribbon] .cg-b-sq{background:var(--th-violet);border-radius:2px}:root[data-cg-theme=ribbon] .cg-b-s h2{color:var(--ink);letter-spacing:-.01em;font-weight:400}:root[data-cg-theme=ribbon] .cg-b-s:after{z-index:-1;pointer-events:none;background:linear-gradient(90deg,#ffb86a29,#ff6aa81f 50%,#9a72ff29);height:46%;top:auto;bottom:0;-webkit-mask-image:linear-gradient(#0000,#000);mask-image:linear-gradient(#0000,#000)}:root[data-cg-theme=ribbon] .cg-b-skill{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink);--surface:#0f1a3a;--surface2:#1a2650;--ground:#16224a;--ink:#f5f8fc;--sub:#a9b8d0;--faint:#95a5c0;--line:#2a3766;--ai:#b3a6ff;--ai-t:#272560;--mw:#7ab4ff;--mw-t:#16305e;--dev:#ffb27a;--dev-t:#3a2a22;--ok:#5fe0a6;--ok-t:#0f3a2a;--focus:#b3a6ff;--th-eyebrow:#b3a6ff;--th-chip:#6a52ff;background:radial-gradient(circle, #a9b8d024 1px, transparent 1.5px) 0 0 / 18px 18px, var(--surface);box-shadow:0 30px 60px -20px #0a163473}:root[data-cg-theme=ribbon] .cg-b-skill .cg-b-head h3{font-size:22px;font-weight:300}:root[data-cg-theme=ribbon] .cg-b-pd .cg-b-dm button{background:var(--ai-t);color:var(--th-violet);border-color:#0000;font-weight:600}:root[data-cg-theme=ribbon] .cg-b-pd .cg-b-dm button small{color:var(--sub)}:root[data-cg-theme=ribbon] .cg-b-pd .cg-b-dm button:hover{background:var(--th-violet);color:#fff;border-color:#0000}:root[data-cg-theme=ribbon] .cg-b-pd .cg-b-dm button:hover small{color:#fff}:root[data-cg-theme=ribbon] .cg-b-skill .cg-b-backbtn{color:var(--ink);background:0 0;border-color:#3a4a7a}:root[data-cg-theme=ribbon] .cg-b-hm .cg-b-c{border-radius:2px}:root[data-cg-theme=ribbon] .cg-b-era{border-color:var(--line);background:#fff}:root[data-cg-theme=ribbon] .cg-b-era[aria-pressed=true]{background:var(--ink);border-color:var(--ink);box-shadow:var(--th-shadow-sm)}:root[data-cg-theme=ribbon] .cg-b-gantt .cg-b-bar.cg-b-on{background:var(--th-violet)}:root[data-cg-theme=ribbon] .cg-b-gantt .cg-b-band{background:#efebff}:root[data-cg-theme=ribbon] .cg-b-ec{border-color:var(--line);box-shadow:var(--th-shadow-sm);background:#fff}:root[data-cg-theme=ribbon] .cg-b-ec:hover{border-color:#c9c1ff;box-shadow:0 12px 24px -10px #30346040}:root[data-cg-theme=ribbon] .cg-b-ec .cg-b-im.cg-b-none{color:var(--sub);background:linear-gradient(115deg,#fff4ea,#ffeef6 40%,#f1ecff 70%,#eaf6ff)}:root[data-cg-theme=ribbon] .cg-project-item{border-color:var(--line);box-shadow:var(--th-shadow-sm);background:#fff}:root[data-cg-theme=ribbon] .cg-b-skill .cg-project-item{background:var(--ground);box-shadow:none}:root[data-cg-theme=ribbon] .cg-modal{--th-accent:var(--th-violet);--th-modal-bg:#fff;--th-modal-border:transparent;--th-modal-shadow:0 50px 100px -20px #3034604d, 0 30px 60px -30px #00000059;--th-stage:linear-gradient(115deg, #fff4ea, #ffeef6 40%, #f1ecff 70%, #eaf6ff)}:root[data-cg-theme=ribbon] .cg-modal-header:after{background:var(--th-ribbon);height:2px}:root[data-cg-theme=ribbon] .cg-modal-kicker{color:var(--th-violet);font:600 12px/1 var(--th-sys);letter-spacing:.04em;background:0 0;padding:5px 0}:root[data-cg-theme=ribbon] .cg-modal-kicker:before{box-shadow:none;border-radius:2px}:root[data-cg-theme=ribbon] :is(.cg-modal-back,.cg-modal-close){color:var(--th-violet)}:root[data-cg-theme=ribbon] .cg-modal-body h3{letter-spacing:-.01em;font-size:26px;font-weight:300;line-height:1.3}:root[data-cg-theme=ribbon] .cg-section-label{letter-spacing:.04em;font-weight:600}:root[data-cg-theme=ribbon] .cg-section-label:after{background:0 0;border-top:1px dashed #c9d2de;height:0}:root[data-cg-theme=ribbon] .cg-phase-grid span.on{background:var(--th-violet);border-color:var(--th-violet);color:#fff}:root[data-cg-theme=ribbon] .cg-ext-link{background:var(--th-violet);border-color:var(--th-violet);color:#fff;border-radius:4px;padding:9px 14px 9px 16px;font-weight:600}:root[data-cg-theme=ribbon] .cg-ext-link:after{content:"";border-top:1.5px solid;border-right:1.5px solid;width:5px;height:5px;transform:rotate(45deg)}:root[data-cg-theme=ribbon] .cg-ext-link:hover{background:var(--th-violet-hover)}:root[data-cg-theme=ribbon] .cg-ai-fab{background:var(--th-violet);color:#fff;border-radius:6px;box-shadow:0 13px 27px -5px #30346059,0 8px 16px -8px #0000004d}:root[data-cg-theme=ribbon] .cg-ai-fab:hover{background:var(--th-violet-hover)}:root[data-cg-theme=ribbon] .cg-ai-fab .cg-ai-dot{--ai:#fff;background:#fff}@media (forced-colors:active){:root[data-cg-theme=ribbon] :is(.cg-b-profile,.cg-b-s):after{display:none}:root[data-cg-theme=ribbon] .cg-b-skill{background-image:none}}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=ribbon] .cg-b-more:after{transition:transform .2s var(--th-ease-out)}:root[data-cg-theme=ribbon] .cg-b-card:hover .cg-b-more:after{transform:translate(2px)rotate(45deg)}}
