:root[data-cg-theme]{--th-ease-out:cubic-bezier(.16, 1, .3, 1);--th-spring:cubic-bezier(.34, 1.3, .64, 1);--th-grad:linear-gradient(90deg, var(--ai), var(--mw) 50%, var(--dev))}@supports (animation-timing-function:linear(0, 1)){:root[data-cg-theme]{--th-spring:linear(0, .047 2.2%, .177 4.7%, .369 7.6%, .608 11.4%, .82 15.8%, .953 20.1%, 1.029 24.6%, 1.056 29%, 1.057 33.1%, 1.042 38.2%, 1.019 45.3%, 1.003 54.6%, .997 65%, 1)}}:root[data-cg-theme] body{background:0 0}:root[data-cg-theme] body:before{content:"";z-index:-1;pointer-events:none;width:100%;height:100lvh;position:fixed;top:0;left:0}:root[data-cg-theme] .cg-b-card{isolation:isolate;background:var(--th-card-bg);border:1px solid var(--th-card-border);border-radius:var(--th-r-card);box-shadow:var(--th-card-shadow)}:root[data-cg-theme] .cg-b-card:before{z-index:-1;background:var(--th-card-glow)}:root[data-cg-theme] .cg-b-card:not(.cg-b-nohover):hover{border-color:var(--th-card-border-hover);box-shadow:var(--th-card-shadow-hover)}:root[data-cg-theme] .cg-b-card:focus-visible{outline-offset:4px}:root[data-cg-theme] .cg-b-more,:root[data-cg-theme] .cg-b-dm button,:root[data-cg-theme] .cg-b-backbtn{border-radius:var(--th-r-pill)}:root[data-cg-theme] .cg-b-s .cg-b-tags span{border-radius:var(--th-r-chip)}:root[data-cg-theme] .cg-b-era,:root[data-cg-theme] .cg-b-ec,:root[data-cg-theme] .cg-project-item{border-radius:var(--th-r-item)}:root[data-cg-theme] .cg-b-gantt .cg-b-bar:not(.cg-b-on){background:var(--th-bar-off)}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme] .cg-b-card:not(.cg-b-nohover):hover{transform:var(--th-hover-transform,translateY(-2px))}}@media (prefers-reduced-motion:reduce){:root[data-cg-theme] .cg-b-card:hover,:root[data-cg-theme] .cg-project-item:hover,:root[data-cg-theme] .cg-b-ec:hover,:root[data-cg-theme] .cg-b-era:hover{transform:none}}:root[data-cg-theme] [data-cg-limited-banner]{width:calc(100% - 48px);max-width:1192px;color:var(--sub);background:var(--surface);border:1px solid var(--line);border-radius:var(--th-r-item);margin:14px auto 0;padding:10px 16px;font-size:12.5px;line-height:1.6}@media (max-width:600px){:root[data-cg-theme] [data-cg-limited-banner]{width:calc(100% - 32px)}}:root[data-cg-theme] .cg-modal-backdrop{background:var(--th-scrim-bg,var(--scrim));-webkit-backdrop-filter:var(--th-backdrop,blur(6px))}:root[data-cg-theme] .cg-modal{--th-accent:var(--mw);--th-accent-grad:var(--th-grad);border-radius:var(--th-r-modal);border:1px solid var(--th-modal-border,var(--line));background:var(--th-modal-bg,var(--surface));max-height:calc(100dvh - 48px);box-shadow:var(--th-modal-shadow,0 30px 80px #0000004d)}:root[data-cg-theme] .cg-modal[aria-label=PROFILE]{--th-accent:var(--ai);--th-accent-grad:linear-gradient(90deg, var(--ai), var(--mw))}:root[data-cg-theme] .cg-modal:has(.cg-b-mb[data-cg-strength=ai]){--th-accent:var(--ai);--th-accent-grad:linear-gradient(90deg, var(--ai), color-mix(in srgb, var(--ai) 30%, var(--surface)))}:root[data-cg-theme] .cg-modal:has(.cg-b-mb[data-cg-strength=mw]){--th-accent:var(--mw);--th-accent-grad:linear-gradient(90deg, var(--mw), color-mix(in srgb, var(--mw) 30%, var(--surface)))}:root[data-cg-theme] .cg-modal:has(.cg-b-mb[data-cg-strength=dev]){--th-accent:var(--dev);--th-accent-grad:linear-gradient(90deg, var(--dev), color-mix(in srgb, var(--dev) 30%, var(--surface)))}:root[data-cg-theme] .cg-modal:has(.cg-b-mb[data-cg-strength]) .cg-b-mb>h3{color:var(--th-accent)}:root[data-cg-theme] .cg-modal-header{z-index:2;background:var(--th-head-bg);-webkit-backdrop-filter:var(--th-head-filter,none);border-bottom:1px solid var(--line);gap:12px;padding:12px 20px}:root[data-cg-theme] .cg-modal-header:after{content:"";background:var(--th-accent-grad);transform-origin:0;pointer-events:none;height:2px;position:absolute;bottom:-1px;left:0;right:0}:root[data-cg-theme] .cg-modal-header:before{content:"";pointer-events:none;opacity:0;background:linear-gradient(180deg, var(--th-head-shadow,#0000001f), transparent);height:16px;position:absolute;top:100%;left:0;right:0}:root[data-cg-theme] .cg-modal-kicker{border-radius:var(--th-r-pill);background:color-mix(in srgb, var(--th-accent) 12%, var(--surface));color:var(--ink);font:600 11.5px/1 var(--mono);letter-spacing:.14em;align-items:center;gap:8px;padding:5px 12px 5px 10px;display:inline-flex}:root[data-cg-theme] .cg-modal-kicker:before{content:"";background:var(--th-accent);width:7px;height:7px;box-shadow:0 0 0 3px color-mix(in srgb, var(--th-accent) 22%, transparent);border-radius:50%;flex:none}:root[data-cg-theme] .cg-modal-back,:root[data-cg-theme] .cg-modal-close{border-radius:var(--th-r-pill);font:600 13px var(--body);color:var(--ink);background:var(--th-btn-bg);border:1px solid var(--th-btn-border);padding:7px 14px;transition:background-color .2s,border-color .2s}:root[data-cg-theme] .cg-modal-back:hover,:root[data-cg-theme] .cg-modal-close:hover{background:var(--th-btn-bg-hover)}:root[data-cg-theme] .cg-modal-body{--th-body-pt:22px;--th-body-px:26px;padding:var(--th-body-pt) var(--th-body-px) 28px;gap:16px}:root[data-cg-theme] .cg-modal-body h3{font:900 21px/1.4 var(--disp);letter-spacing:.01em;color:var(--ink)}:root[data-cg-theme] .cg-project-detail{gap:14px}:root[data-cg-theme] .cg-project-detail__company{letter-spacing:.02em;color:var(--sub);font-size:12.5px}:root[data-cg-theme] .cg-project-detail__company+.cg-project-detail__name{margin-top:-8px}:root[data-cg-theme] .cg-modal-body .cg-project-detail__name{font-size:23px}:root[data-cg-theme] .cg-project-detail>p:not([class]){font-size:14.5px;line-height:1.85}:root[data-cg-theme] .cg-b-mb{flex-direction:column;gap:14px;display:flex}:root[data-cg-theme] .cg-b-mb>p{font-size:15px;line-height:1.75}:root[data-cg-theme] .cg-b-mb ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}:root[data-cg-theme] .cg-b-mb li{padding-left:18px;font-size:14px;line-height:1.75;position:relative}:root[data-cg-theme] .cg-b-mb li:before{content:"";background:var(--th-accent);border-radius:2px;width:6px;height:6px;position:absolute;top:.72em;left:2px}:root[data-cg-theme] .cg-modal .cg-b-mb ul.cg-b-cs{gap:12px;padding-left:26px;position:relative}:root[data-cg-theme] .cg-modal .cg-b-mb ul.cg-b-cs:before{content:"";background:linear-gradient(180deg, var(--ai), var(--mw), var(--dev));opacity:.45;border-radius:2px;width:2px;position:absolute;top:10px;bottom:10px;left:7px}:root[data-cg-theme] .cg-modal .cg-b-mb ul.cg-b-cs>li{padding-left:0}:root[data-cg-theme] .cg-modal .cg-b-mb ul.cg-b-cs>li:before{background:var(--surface);width:10px;height:10px;box-shadow:inset 0 0 0 2px var(--th-accent);border-radius:50%;top:.55em;left:-24px}:root[data-cg-theme] .cg-modal .cg-facts{border-top:1px solid var(--line);grid-template-columns:minmax(88px,max-content) minmax(0,1fr);gap:0;font-size:13.5px}:root[data-cg-theme] .cg-modal .cg-facts dt,:root[data-cg-theme] .cg-modal .cg-facts dd{border-bottom:1px solid var(--line);padding:9px 0}:root[data-cg-theme] .cg-modal .cg-facts dt{color:var(--sub);padding-right:18px;font-size:12.5px;font-weight:600}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-rows:auto auto;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:column;row-gap:4px;padding:12px 0}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt,:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dd{border-bottom:0;padding:0 14px}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt:first-of-type,:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dd:first-of-type{padding-left:0}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt:not(:first-of-type),:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dd:not(:first-of-type){border-left:1px solid var(--line)}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt{letter-spacing:.08em;font-size:11.5px}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dd{color:var(--ink);font-size:14px;font-weight:600}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dd.mono{font:600 13.5px var(--mono);letter-spacing:-.01em}:root[data-cg-theme] .cg-section-label{letter-spacing:.08em;color:var(--sub);align-items:center;gap:10px;margin-top:6px;font-size:12px;display:flex}:root[data-cg-theme] .cg-section-label:before{content:"";background:var(--th-accent,var(--mw));border-radius:2px;flex:none;width:14px;height:2px}:root[data-cg-theme] .cg-section-label:after{content:"";background:var(--line);flex:1;height:1px}:root[data-cg-theme] .cg-phase-grid{gap:3px}:root[data-cg-theme] .cg-phase-grid span{color:var(--sub);border:1px dashed color-mix(in srgb, var(--sub) 45%, transparent);background:0 0;border-radius:0;padding:7px 0;font-size:11.5px;font-weight:500}:root[data-cg-theme] .cg-phase-grid span:first-child{border-radius:var(--th-r-item) 0 0 var(--th-r-item)}:root[data-cg-theme] .cg-phase-grid span:last-child{border-radius:0 var(--th-r-item) var(--th-r-item) 0}:root[data-cg-theme] .cg-phase-grid span.on{background:var(--mw);border:1px solid var(--mw);color:var(--ground);font-weight:700}:root[data-cg-theme] .cg-tech-stack{gap:6px}:root[data-cg-theme] .cg-tech-stack span{font:500 12px/1.5 var(--mono);border-radius:var(--th-r-chip);background:var(--surface2);border:1px solid var(--line);color:var(--ink);padding:3px 10px}:root[data-cg-theme] .cg-ext-link{border-radius:var(--th-r-pill);color:var(--mw);background:color-mix(in srgb, var(--mw) 6%, var(--surface));border:1px solid color-mix(in srgb, var(--mw) 45%, transparent);align-items:center;gap:6px;padding:8px 14px;text-decoration:none;transition:background-color .2s;display:inline-flex}:root[data-cg-theme] .cg-ext-link:hover{background:color-mix(in srgb, var(--mw) 12%, var(--surface));text-decoration:underline}:root[data-cg-theme] .cg-modal-body>.cg-project-detail>.cg-project-image:first-child{margin:calc(-1 * var(--th-body-pt)) calc(-1 * var(--th-body-px)) 4px;border-bottom:1px solid var(--line);background:var(--th-stage,var(--surface2));border-radius:0}:root[data-cg-theme] .cg-project-item{transition:transform .3s var(--th-ease-out), border-color .2s, box-shadow .3s;padding:11px 34px 11px 14px;position:relative}:root[data-cg-theme] .cg-project-item:after{content:"";opacity:.35;border-top:1.5px solid;border-right:1.5px solid;width:7px;height:7px;transition:opacity .2s,transform .2s;position:absolute;top:50%;right:14px;transform:translateY(-50%)rotate(45deg)}:root[data-cg-theme] .cg-project-item:hover{border-color:color-mix(in srgb, var(--th-accent,var(--mw)) 55%, var(--line));box-shadow:0 10px 24px -14px color-mix(in srgb, var(--th-accent,var(--mw)) 60%, transparent)}:root[data-cg-theme] .cg-project-item:hover:after{opacity:.9}@media (max-width:600px){:root[data-cg-theme] .cg-modal-overlay{place-items:end stretch;padding:40px 0 0}:root[data-cg-theme] .cg-modal{border-radius:var(--th-r-sheet) var(--th-r-sheet) 0 0;border-bottom-width:0;width:100%;max-height:calc(100dvh - 40px)}:root[data-cg-theme] .cg-modal-body{--th-body-pt:18px;--th-body-px:18px;padding-bottom:calc(24px + env(safe-area-inset-bottom,0px))}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts{grid-template-rows:repeat(4,auto);grid-template-columns:repeat(2,minmax(0,1fr))}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt,:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dd{border-left:0;padding-left:0}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt:nth-of-type(n+3),:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dd:nth-of-type(n+3){border-left:1px solid var(--line);padding-left:14px}:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt:nth-of-type(2),:root[data-cg-theme] .cg-modal .cg-project-detail .cg-facts dt:nth-of-type(4){padding-top:10px}}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme] .cg-modal-backdrop{animation:thFade var(--th-scrim-dur,.3s) ease-out both}:root[data-cg-theme] .cg-modal{animation:thModalIn var(--th-modal-dur,.56s) var(--th-modal-ease,var(--th-spring)) both}:root[data-cg-theme] .cg-modal-header:after{animation:thDraw var(--th-draw-dur,.7s) var(--th-draw-ease,var(--th-ease-out)) .12s both}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:not(.cg-b-plist),:root[data-cg-theme] .cg-modal-body>h3{animation:thRise .42s var(--th-ease-out) both}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:nth-child(2){animation-delay:40ms}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:nth-child(3){animation-delay:80ms}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:nth-child(4){animation-delay:.12s}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:nth-child(5){animation-delay:.16s}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:nth-child(6){animation-delay:.2s}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:nth-child(7){animation-delay:.24s}:root[data-cg-theme] .cg-modal-body :is(.cg-project-detail,.cg-b-mb)>:nth-child(n+8){animation-delay:.28s}:root[data-cg-theme] .cg-modal-body>.cg-project-detail>.cg-project-image:first-child img{animation:thImgIn .7s var(--th-ease-out) both}:root[data-cg-theme] .cg-project-item:hover{transform:translateY(-2px)}:root[data-cg-theme] .cg-project-item:hover:after{transform:translate(3px,-50%)rotate(45deg)}}@media (prefers-reduced-motion:no-preference) and (max-width:600px){:root[data-cg-theme] .cg-modal{animation:thSheetUp var(--th-sheet-dur,.5s) var(--th-modal-ease,var(--th-spring)) both}}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){:root[data-cg-theme] .cg-modal-header:before{animation:linear both thFade;animation-timeline:scroll();animation-range:0 64px}}}@keyframes thFade{0%{opacity:0}to{opacity:1}}@keyframes thModalIn{0%{opacity:0;transform:var(--th-modal-from,translateY(16px) scale(.96))}to{opacity:1;transform:none}}@keyframes thSheetUp{0%{transform:translateY(100%)}to{transform:none}}@keyframes thDraw{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes thRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes thImgIn{0%{opacity:0;transform:scale(1.04)}to{opacity:1;transform:none}}@media (prefers-reduced-transparency:reduce){:root[data-cg-theme] .cg-b-card{background:var(--surface);border-color:var(--line)}:root[data-cg-theme] .cg-modal-header{background:var(--surface);-webkit-backdrop-filter:none}:root[data-cg-theme] .cg-modal-backdrop{-webkit-backdrop-filter:none}}@media (forced-colors:active){:root[data-cg-theme] body:before,:root[data-cg-theme] body:after{display:none}:root[data-cg-theme] .cg-b-card,:root[data-cg-theme] .cg-modal{border:1px solid canvastext}:root[data-cg-theme] .cg-b-photo{background-image:none}:root[data-cg-theme] body *{-webkit-text-fill-color:currentColor}}:root[data-cg-motion=off] .cg-ai-dot{animation:none}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]){--th-bw:1px;--th-h1-size:clamp(24px, 2.9vw, 40px);--th-h1-lh:1.15;--th-h1-ls:0;--th-h1-mt:6px;--th-name-size:30px;--th-nm-lh:1.2;--th-h2-size:20px;--th-h2-lh:1.35;--th-v-size:clamp(36px, 9vw, 52px)}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-profile:not(:has(.cg-b-avail))>div:first-of-type{grid-column:1/-1}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-profile h1{font-size:var(--th-h1-size);line-height:var(--th-h1-lh);letter-spacing:var(--th-h1-ls);margin-top:var(--th-h1-mt)}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-profile .cg-b-nm{line-height:var(--th-nm-lh)}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-profile .cg-b-nm b{font-size:var(--th-name-size)}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-s h2{font-size:var(--th-h2-size);line-height:var(--th-h2-lh)}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-m .cg-b-v{font-size:var(--th-v-size)}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-card{border-width:var(--th-bw);padding:calc(21px - var(--th-bw)) calc(25px - var(--th-bw))}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-profile{padding:calc(23px - var(--th-bw)) calc(27px - var(--th-bw))}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-s{padding:calc(19px - var(--th-bw)) calc(21px - var(--th-bw)) calc(17px - var(--th-bw))}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-metrics{padding:0}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-m{padding-top:calc(17px - var(--th-bw));padding-bottom:calc(19px - var(--th-bw))}@media (max-width:600px){:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) :is(.cg-b-card,.cg-b-profile,.cg-b-s){padding:calc(17px - var(--th-bw)) calc(19px - var(--th-bw))}:root:is([data-cg-theme=brutal],[data-cg-theme=terminal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-metrics{padding:0}}:root:is([data-cg-theme=brutal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]){--th-rv-name:thRvScale;--th-rv-below:thRvScale;--th-rv-dur:.7s;--th-rv-ease:var(--th-ease-out);--th-rv-step:70ms}@media (prefers-reduced-motion:no-preference){:root:is([data-cg-theme=brutal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-reveal.cg-b-pre{opacity:0;filter:none;transform:none}:root:is([data-cg-theme=brutal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-reveal.cg-b-in{transform-origin:50% 0;transition:transform .35s var(--th-ease-out), box-shadow .35s var(--th-ease-out), border-color .2s, background-color .2s;animation:var(--th-rv-name) var(--th-rv-dur) var(--th-rv-ease) backwards;animation-delay:calc(var(--cg-b-i,0) * var(--th-rv-step))}:root:is([data-cg-theme=brutal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-reveal.cg-b-in:is(.cg-b-skill,.cg-b-pd,.cg-b-tl){animation-name:var(--th-rv-below)}:root:is([data-cg-theme=brutal],[data-cg-theme=magazine],[data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]) .cg-b-reveal.cg-b-in:hover{transition-delay:0s}}@keyframes thRvScale{0%{opacity:0;transform:scale(.97)}20%{opacity:1}to{opacity:1;transform:none}}@keyframes thRvRise{0%{opacity:0;transform:translateY(28px)}20%{opacity:1}to{opacity:1;transform:none}}:root:is([data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium],[data-cg-theme=showroom],[data-cg-theme=coral],[data-cg-theme=ribbon]){--th-sys:system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Noto Sans JP", "Yu Gothic UI", "Yu Gothic", Meiryo, sans-serif}:root:is([data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium])[data-cg-motion=off] body:before,:root:is([data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium])[data-cg-motion=off] body:after,:root:is([data-cg-theme=holo],[data-cg-theme=neural],[data-cg-theme=flux],[data-cg-theme=minimal],[data-cg-theme=glass],[data-cg-theme=titanium])[data-cg-motion=off] .cg-b-profile:after{will-change:auto;animation:none}
:root[data-cg-theme=aurora]{--ground:#f4f3f9;--surface:#fff;--surface2:#eeedf5;--ink:#17162a;--sub:#4f5068;--faint:#66677e;--line:#dddbea;--ai:#5840d6;--ai-t:#ece8fd;--mw:#1360c0;--mw-t:#e6eefc;--dev:#9a4f06;--dev-t:#fbeedd;--ok:#157a42;--ok-t:#e1f4e8;--warn-t:#fcefd9;--focus:#5840d6;--scrim:#1c16404d;--th-r-card:24px;--th-r-item:16px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:28px;--th-r-sheet:24px;--th-card-bg:#ffffffc7;--th-card-border:#ffffffd9;--th-card-border-hover:#5840d64d;--th-card-shadow:inset 0 1px 0 #ffffffe6, 0 1px 2px #281e6e0d, 0 14px 36px -12px #281e6e29;--th-card-shadow-hover:inset 0 1px 0 #ffffffe6, 0 2px 4px #281e6e0f, 0 24px 48px -16px #3c28a042;--th-glow-c:color-mix(in srgb, var(--ai) 6%, transparent);--th-hover-transform:translateY(-3px);--th-blob-1:#5840d629;--th-blob-2:#1360c024;--th-blob-3:#b8630a1a;--th-bar-off:#8a89a3;--th-head-bg:color-mix(in srgb, var(--surface) 84%, transparent);--th-head-filter:blur(14px) saturate(1.4);--th-head-shadow:#281e6e1a;--th-backdrop:blur(10px) saturate(1.3);--th-btn-bg:color-mix(in srgb, var(--ink) 5%, transparent);--th-btn-border:transparent;--th-btn-bg-hover:color-mix(in srgb, var(--ink) 9%, transparent);--th-modal-dur:.56s;--th-modal-ease:var(--th-spring);--th-modal-from:translateY(18px) scale(.94)}@media (prefers-color-scheme:dark){:root[data-cg-theme=aurora]{--ground:#0d0c1a;--surface:#16152a;--surface2:#221f3a;--ink:#ecebf7;--sub:#b3b2cc;--faint:#9291ad;--line:#2c2a48;--ai:#b1a4ff;--ai-t:#2a2350;--mw:#7cb8ff;--mw-t:#16284a;--dev:#f4ad66;--dev-t:#3a2812;--ok:#5ed493;--ok-t:#11301f;--warn-t:#3a2a10;--focus:#b1a4ff;--scrim:#04030c9e;--th-card-bg:#161528cc;--th-card-border:#ffffff14;--th-card-border-hover:#b1a4ff59;--th-card-shadow:inset 0 1px 0 #ffffff0f, 0 1px 2px #0006, 0 18px 40px -16px #0009;--th-card-shadow-hover:inset 0 1px 0 #ffffff14, 0 2px 4px #0006, 0 28px 60px -20px #5840d673;--th-glow-c:color-mix(in srgb, var(--ai) 8%, transparent);--th-blob-1:#7c68ff38;--th-blob-2:#3a8cff29;--th-blob-3:#f0a65a1a;--th-bar-off:#6f6d8c;--th-head-shadow:#00000059}}@media (max-width:600px){:root[data-cg-theme=aurora]{--th-backdrop:blur(6px)}}@media (prefers-reduced-transparency:reduce){:root[data-cg-theme=aurora]{--th-card-bg:var(--surface);--th-card-border:var(--line)}}:root[data-cg-theme=aurora] body:before{background:radial-gradient(ellipse 60% 50% at 10% 4%, var(--th-blob-1), transparent 70%), radial-gradient(ellipse 50% 45% at 92% 14%, var(--th-blob-2), transparent 70%), radial-gradient(ellipse 60% 50% at 64% 96%, var(--th-blob-3), transparent 70%)}:root[data-cg-theme=aurora] .cg-b-card{--th-card-glow:radial-gradient(520px circle at var(--cg-mx,50%) var(--cg-my,0%), var(--th-glow-c), transparent 65%)}:root[data-cg-theme=aurora] .cg-b-card.cg-b-s{--th-card-glow:radial-gradient(520px circle at var(--cg-mx,50%) var(--cg-my,0%), color-mix(in srgb, var(--cg-c) 5%, transparent), transparent 65%);background:linear-gradient(180deg, color-mix(in srgb, var(--cg-c) 6%, transparent), transparent 140px), var(--th-card-bg)}:root[data-cg-theme=aurora] .cg-b-s:after{background:linear-gradient(90deg, var(--cg-c), color-mix(in srgb, var(--cg-c) 20%, transparent));height:3px}:root[data-cg-theme=aurora] .cg-b-s li:before{border-radius:50%}:root[data-cg-theme=aurora] .cg-b-card .label{letter-spacing:.16em}:root[data-cg-theme=aurora] .cg-b-card .label:before{content:"";vertical-align:1px;background:var(--th-grad);border-radius:50%;width:6px;height:6px;margin-right:8px;display:inline-block}:root[data-cg-theme=aurora] .cg-b-profile:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side, color-mix(in srgb, var(--ai) 10%, transparent), color-mix(in srgb, var(--mw) 5%, transparent) 50%, transparent);border-radius:50%;width:560px;height:560px;position:absolute;top:-120px;right:-80px}:root[data-cg-theme=aurora] .cg-b-photo{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px color-mix(in srgb, var(--ai) 40%, transparent)}:root[data-cg-theme=aurora] .cg-b-more{background:var(--surface);border-color:var(--line)}:root[data-cg-theme=aurora] .cg-b-card:hover .cg-b-more{color:var(--ai);border-color:color-mix(in srgb, var(--ai) 45%, transparent);background:var(--ai-t)}:root[data-cg-theme=aurora] .cg-b-m .cg-b-v{background:linear-gradient(180deg, var(--ink) 35%, color-mix(in srgb, var(--ink) 55%, var(--ai)));color:#0000;-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=aurora] .cg-b-m .cg-b-line,:root[data-cg-theme=aurora] .cg-b-bar,:root[data-cg-theme=aurora] .cg-b-bar i{border-radius:999px}:root[data-cg-theme=aurora] .cg-b-sq{background:linear-gradient(135deg, var(--ai), var(--mw));border-radius:50%}:root[data-cg-theme=aurora] .cg-b-sk{border-radius:12px}:root[data-cg-theme=aurora] .cg-b-hm .cg-b-c{border-radius:4px}:root[data-cg-theme=aurora] .cg-b-era[aria-pressed=true]{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px color-mix(in srgb, var(--ai) 45%, transparent), 0 12px 28px -12px #3c28a073}:root[data-cg-theme=aurora] .cg-b-gantt .cg-b-band{background:color-mix(in srgb, var(--ai-t) 60%, var(--mw-t));border-radius:10px}:root[data-cg-theme=aurora] .cg-b-gantt .cg-b-bar.cg-b-on{background:linear-gradient(90deg, var(--ai), var(--mw))}:root[data-cg-theme=aurora] .cg-b-ec:hover{box-shadow:0 16px 36px -18px #3c28a066}:root[data-cg-theme=aurora] .cg-modal{--th-modal-bg:radial-gradient(900px 260px at 50% 0%, color-mix(in srgb, var(--th-accent) 9%, transparent), transparent 70%) local, var(--surface);--th-modal-border:#ffffffe6;--th-modal-shadow:0 0 0 1px #281e6e0f, 0 40px 100px -20px #281e6e66, 0 16px 40px -16px #281e6e40;--th-stage:radial-gradient(80% 120% at 15% 0%, color-mix(in srgb, var(--ai) 22%, transparent), transparent 60%), radial-gradient(70% 120% at 90% 100%, color-mix(in srgb, var(--mw) 20%, transparent), transparent 60%), var(--surface2)}@media (prefers-color-scheme:dark){:root[data-cg-theme=aurora] .cg-modal{--th-modal-border:#ffffff14;--th-modal-shadow:0 0 0 1px #00000080, 0 40px 120px -30px color-mix(in srgb, var(--th-accent) 40%, transparent), 0 30px 80px -20px #000000b3}}:root[data-cg-theme=aurora] .cg-ai-fab{color:#fff;background:linear-gradient(135deg,#5840d6,#1360c0);box-shadow:0 12px 32px -8px #5840d68c}:root[data-cg-theme=aurora] .cg-ai-fab .cg-ai-dot{background:#fff;animation-name:thDotPulseLight;box-shadow:0 0 0 4px #ffffff40}@keyframes thDotPulseLight{50%{box-shadow:0 0 0 8px #ffffff0f}}:root[data-cg-theme=aurora] .cg-ai-side{border-radius:24px 0 0 24px;box-shadow:-30px 0 80px -20px #281e6e59}:root[data-cg-theme=aurora] .cg-ai-tab[aria-selected=true]{border-bottom-color:var(--ai)}@media (max-width:420px){:root[data-cg-theme=aurora] .cg-ai-side{border-radius:0}}@media (prefers-color-scheme:dark){:root[data-cg-theme=aurora] .cg-ai-side{box-shadow:-30px 0 80px #0009}}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=aurora] body:before{will-change:transform;animation:36s ease-in-out infinite alternate thAuroraDrift}:root[data-cg-theme=aurora] .cg-b-profile:after{animation:18s ease-in-out infinite alternate thOrbFloat}:root[data-cg-theme=aurora] .cg-b-ec .cg-b-im img{transition:transform .6s var(--th-ease-out)}:root[data-cg-theme=aurora] .cg-b-ec:hover .cg-b-im img{transform:scale(1.04)}}:root[data-cg-theme=aurora][data-cg-motion=off] body:before,:root[data-cg-theme=aurora][data-cg-motion=off] .cg-b-profile:after,:root[data-cg-theme=aurora][data-cg-motion=off] .cg-ai-fab .cg-ai-dot{will-change:auto;animation:none}@keyframes thAuroraDrift{0%{transform:none}50%{transform:translate(2.5%,-2%)scale(1.05)}to{transform:translate(-2%,2.5%)scale(1.02)}}@keyframes thOrbFloat{to{transform:translate(-24px,16px)}}
:root[data-cg-theme=blueprint]{--ground:#f3f6fa;--surface:#fff;--surface2:#e9eff7;--ink:#0f1c2e;--sub:#3d4e66;--faint:#56667e;--line:#d3dce8;--ai:#5438cc;--ai-t:#ebe7fb;--mw:#0a5cc2;--mw-t:#e2ecf9;--dev:#9a4f06;--dev-t:#f8ebdb;--ok:#157a42;--ok-t:#e1f4e8;--warn-t:#fcefd9;--focus:#0a5cc2;--scrim:#0f1c2e73;--th-r-card:10px;--th-r-item:6px;--th-r-pill:4px;--th-r-chip:3px;--th-r-modal:8px;--th-r-sheet:10px;--th-rule:#9db0c7;--th-mark:#9db0c7;--th-grid-minor:#0a5cc20e;--th-grid-major:#0a5cc21a;--th-card-bg:var(--surface);--th-card-border:var(--line);--th-card-border-hover:var(--mw);--th-card-shadow:0 1px 0 #0f1c2e0a;--th-card-shadow-hover:4px 4px 0 0 color-mix(in srgb, var(--mw) 20%, transparent);--th-card-glow:none;--th-hover-transform:translate(-2px, -2px);--th-bar-off:#7f8fa5;--th-head-bg:var(--surface);--th-head-filter:none;--th-head-shadow:#0f1c2e14;--th-backdrop:none;--th-scrim-bg:linear-gradient(#ffffff0d 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, #ffffff0d 1px, transparent 1px) 0 0 / 24px 24px, var(--scrim);--th-btn-bg:transparent;--th-btn-border:var(--th-rule);--th-btn-bg-hover:var(--surface2);--th-modal-dur:.42s;--th-modal-ease:cubic-bezier(.2, .9, .25, 1.04);--th-modal-from:translateY(10px) scale(.985);--th-draw-dur:.6s;--th-draw-ease:cubic-bezier(.65, 0, .35, 1);--th-scrim-dur:.24s;--th-sheet-dur:.42s}@media (prefers-color-scheme:dark){:root[data-cg-theme=blueprint]{--ground:#0a1a2f;--surface:#0f2340;--surface2:#173152;--ink:#e6f0fb;--sub:#a9bdd4;--faint:#8ca3bf;--line:#26446c;--ai:#b5a8ff;--ai-t:#282a5c;--mw:#7cc2ff;--mw-t:#11335a;--dev:#f6b26c;--dev-t:#3b2c1a;--ok:#62d69a;--ok-t:#0f2c1f;--warn-t:#3a2a10;--focus:#7cc2ff;--scrim:#030a149e;--th-rule:#3d6594;--th-mark:#4f78a8;--th-grid-minor:#7cc2ff0f;--th-grid-major:#7cc2ff1c;--th-card-shadow:0 1px 0 #00000040;--th-card-shadow-hover:4px 4px 0 0 #7cc2ff38;--th-head-shadow:#00000059}}:root[data-cg-theme=blueprint] body:before{background-image:linear-gradient(var(--th-grid-major) 1px, transparent 1px), linear-gradient(90deg, var(--th-grid-major) 1px, transparent 1px), linear-gradient(var(--th-grid-minor) 1px, transparent 1px), linear-gradient(90deg, var(--th-grid-minor) 1px, transparent 1px);background-position:-1px -1px;background-size:120px 120px,120px 120px,24px 24px,24px 24px}:root[data-cg-theme=blueprint] .cg-b-card:before{opacity:.8;background:linear-gradient(var(--th-mark), var(--th-mark)) left 6px top 6px / 8px 1px no-repeat, linear-gradient(var(--th-mark), var(--th-mark)) left 6px top 6px / 1px 8px no-repeat, linear-gradient(var(--th-mark), var(--th-mark)) right 6px top 6px / 8px 1px no-repeat, linear-gradient(var(--th-mark), var(--th-mark)) right 6px top 6px / 1px 8px no-repeat, linear-gradient(var(--th-mark), var(--th-mark)) left 6px bottom 6px / 8px 1px no-repeat, linear-gradient(var(--th-mark), var(--th-mark)) left 6px bottom 6px / 1px 8px no-repeat, linear-gradient(var(--th-mark), var(--th-mark)) right 6px bottom 6px / 8px 1px no-repeat, linear-gradient(var(--th-mark), var(--th-mark)) right 6px bottom 6px / 1px 8px no-repeat}:root[data-cg-theme=blueprint] .cg-b-card:hover:before{opacity:1}:root[data-cg-theme=blueprint] .cg-b-card:not(.cg-b-nohover):hover{--th-mark:var(--mw)}:root[data-cg-theme=blueprint] .cg-b-card .label{font-family:var(--mono);letter-spacing:.14em}:root[data-cg-theme=blueprint] .cg-b-card .label:before{content:"";vertical-align:middle;background:currentColor;width:14px;height:1px;margin-right:8px;display:inline-block}:root[data-cg-theme=blueprint] .cg-b-s:after{height:2px}:root[data-cg-theme=blueprint] .cg-b-s li:before{box-shadow:inset 0 0 0 1.5px var(--cg-c);background:0 0;border-radius:0}:root[data-cg-theme=blueprint] .cg-b-s .cg-b-tags span{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--cg-c) 35%, transparent)}:root[data-cg-theme=blueprint] .cg-b-photo{box-shadow:inset 0 0 0 1px var(--line);outline:1px dashed var(--line);outline-offset:3px;border-radius:1px}:root[data-cg-theme=blueprint] .cg-b-profile h1 em{color:var(--mw);-webkit-text-decoration:underline 2px color-mix(in srgb, var(--mw) 35%, transparent);text-decoration:underline 2px color-mix(in srgb, var(--mw) 35%, transparent);text-underline-offset:6px;background:0 0;-webkit-background-clip:border-box;background-clip:border-box}:root[data-cg-theme=blueprint] .cg-b-m .cg-b-line{border-radius:0;height:2px;position:relative}:root[data-cg-theme=blueprint] .cg-b-m .cg-b-line.cg-b-thick{height:3px}:root[data-cg-theme=blueprint] .cg-b-m .cg-b-line:before,:root[data-cg-theme=blueprint] .cg-b-m .cg-b-line:after{content:"";background:inherit;width:1px;height:9px;position:absolute;top:50%;transform:translateY(-50%)}:root[data-cg-theme=blueprint] .cg-b-m .cg-b-line:before{left:0}:root[data-cg-theme=blueprint] .cg-b-m .cg-b-line:after{right:0}:root[data-cg-theme=blueprint] .cg-b-bar,:root[data-cg-theme=blueprint] .cg-b-bar i{border-radius:0}:root[data-cg-theme=blueprint] .cg-b-sq{box-shadow:inset 0 0 0 1.5px var(--ink);background:0 0;border-radius:1px}:root[data-cg-theme=blueprint] .cg-b-ph .cg-b-bar{background:linear-gradient(90deg, transparent calc(25% - 1px), var(--th-rule) calc(25% - 1px) 25%, transparent 25% calc(50% - 1px), var(--th-rule) calc(50% - 1px) 50%, transparent 50% calc(75% - 1px), var(--th-rule) calc(75% - 1px) 75%, transparent 75%), var(--surface2)}:root[data-cg-theme=blueprint] .cg-b-sk{background:linear-gradient(90deg, var(--line) 50%, transparent 0) left bottom / 6px 1px repeat-x;border-radius:0}:root[data-cg-theme=blueprint] .cg-b-sk:hover{background:linear-gradient(90deg, var(--line) 50%, transparent 0) left bottom / 6px 1px repeat-x, var(--mw-t)}:root[data-cg-theme=blueprint] .cg-b-hm .cg-b-c{border-radius:1px}:root[data-cg-theme=blueprint] .cg-b-era[aria-pressed=true]{box-shadow:inset 0 3px 0 var(--mw)}:root[data-cg-theme=blueprint] .cg-b-gantt .cg-b-band{background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--mw) 14%, transparent) 0 1px, transparent 1px 7px), var(--mw-t);box-shadow:inset 1px 0 0 color-mix(in srgb, var(--mw) 50%, transparent), inset -1px 0 0 color-mix(in srgb, var(--mw) 50%, transparent);border-radius:2px}:root[data-cg-theme=blueprint] .cg-b-gantt .cg-b-bar{border-radius:1px}:root[data-cg-theme=blueprint] .cg-b-axis{border-top:1px solid var(--th-rule);padding-top:6px}:root[data-cg-theme=blueprint] .cg-b-axis span{position:relative}:root[data-cg-theme=blueprint] .cg-b-axis span:before{content:"";background:var(--th-rule);width:1px;height:5px;position:absolute;top:-6px;left:50%}:root[data-cg-theme=blueprint] .cg-b-ec .cg-b-im.cg-b-none{background:linear-gradient(var(--th-grid-major) 1px, transparent 1px) 0 0 / 12px 12px, linear-gradient(90deg, var(--th-grid-major) 1px, transparent 1px) 0 0 / 12px 12px, var(--surface2)}:root[data-cg-theme=blueprint] .cg-b-ec .cg-b-im{box-shadow:inset 0 -1px 0 var(--line)}:root[data-cg-theme=blueprint] .cg-b-ec:hover{box-shadow:4px 4px 0 0 color-mix(in srgb, var(--mw) 18%, transparent)}:root[data-cg-theme=blueprint] .cg-modal{--th-modal-border:var(--th-rule);--th-modal-shadow:0 0 0 6px color-mix(in srgb, var(--surface) 55%, transparent), 12px 12px 0 -2px color-mix(in srgb, var(--mw) 16%, transparent), 0 30px 60px -30px #0f1c2e80;--th-stage:linear-gradient(var(--th-grid-major) 1px, transparent 1px) 0 0 / 16px 16px, linear-gradient(90deg, var(--th-grid-major) 1px, transparent 1px) 0 0 / 16px 16px, var(--surface2)}:root[data-cg-theme=blueprint] .cg-modal-header{border-bottom-color:var(--th-rule)}:root[data-cg-theme=blueprint] .cg-modal-header:after{background:linear-gradient(var(--th-accent), var(--th-accent)) 0 50% / 100% 1px no-repeat, linear-gradient(var(--th-accent), var(--th-accent)) 0 0 / 1px 100% no-repeat, linear-gradient(var(--th-accent), var(--th-accent)) 100% 0 / 1px 100% no-repeat;height:9px;bottom:-5px}:root[data-cg-theme=blueprint] .cg-modal-kicker{box-shadow:inset 0 0 0 1px var(--th-accent);background:0 0}:root[data-cg-theme=blueprint] .cg-modal-kicker:before{box-shadow:none;border-radius:0}:root[data-cg-theme=blueprint] .cg-ai-fab{box-shadow:4px 4px 0 0 color-mix(in srgb, var(--mw) 35%, transparent);border-radius:8px}:root[data-cg-theme=blueprint] .cg-ai-dot{border-radius:2px}:root[data-cg-theme=blueprint] .cg-ai-side{border-left-color:var(--th-rule);box-shadow:none}:root[data-cg-theme=blueprint] :is(.cg-ai-btn,.cg-ai-close,.cg-ai-sug,.cg-ai-ref,.cg-ai-form input,.cg-ai-fit textarea){border-radius:4px}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=blueprint] .cg-b-reveal.cg-b-pre{filter:none;transform:translateY(20px)}:root[data-cg-theme=blueprint] .cg-b-reveal.cg-b-in{transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--cg-b-i,0) * 70ms)}:root[data-cg-theme=blueprint] .cg-b-reveal.cg-b-in:hover{transition:transform .25s cubic-bezier(.2,.7,.2,1),box-shadow .25s cubic-bezier(.2,.7,.2,1),border-color .2s}:root[data-cg-theme=blueprint] .cg-b-pre:before{opacity:0;transform:scale(1.04)}:root[data-cg-theme=blueprint] .cg-b-in:before{transition:opacity .5s .25s,transform .6s cubic-bezier(.2,.7,.2,1) .25s}:root[data-cg-theme=blueprint] .cg-b-in:hover:before{transition-delay:0s}}
:root[data-cg-theme=night]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#07080b;--surface:#111318;--surface2:#1a1d24;--ink:#eceef3;--sub:#a9afbd;--faint:#8a91a1;--line:#262a33;--ai:#a99bff;--ai-t:#221c40;--mw:#6cb6ff;--mw-t:#0f2440;--dev:#ffb067;--dev-t:#33230f;--ok:#5ee0a0;--ok-t:#0f2c1f;--warn:#f2b35e;--warn-t:#3a2a10;--focus:#8fc8ff;--scrim:#020306a8;--th-r-card:18px;--th-r-item:12px;--th-r-pill:999px;--th-r-chip:6px;--th-r-modal:20px;--th-r-sheet:20px;--th-card-bg:linear-gradient(180deg, #151821, #111318 180px) padding-box, linear-gradient(160deg, #ffffff29, #ffffff0d 45%, #ffffff17) border-box;--th-card-border:transparent;--th-card-border-hover:transparent;--th-card-shadow:0 0 0 1px #00000080, 0 24px 48px -24px #000000e6;--th-card-shadow-hover:0 0 0 1px #6cb6ff59, 0 24px 56px -24px #6cb6ff59;--th-hover-transform:translateY(-2px);--th-bar-off:#5c6577;--th-head-bg:#111318d1;--th-head-filter:blur(14px) saturate(1.3);--th-head-shadow:#00000080;--th-backdrop:blur(8px);--th-btn-bg:var(--surface2);--th-btn-border:var(--line);--th-btn-bg-hover:#222631;--th-modal-dur:.6s;--th-modal-ease:var(--th-spring);--th-modal-from:translateY(14px) scale(.95);--th-draw-dur:.8s}@media (max-width:600px){:root[data-cg-theme=night]{--th-backdrop:blur(4px)}}:root[data-cg-theme=night] body:before{background-image:radial-gradient(circle at 1px 1px,#ffffff12 1px,#0000 1.5px);background-size:22px 22px;-webkit-mask-image:radial-gradient(120% 90% at 50% 0,#000 30%,#0000 85%);mask-image:radial-gradient(120% 90% at 50% 0,#000 30%,#0000 85%)}:root[data-cg-theme=night] body:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(50% 60% at 50% -10%,#6cb6ff2e,#0000 70%),radial-gradient(35% 45% at 16% -6%,#a99bff29,#0000 70%),radial-gradient(30% 40% at 86% -6%,#ffb06714,#0000 70%);height:720px;position:absolute;top:0;left:0;right:0}:root[data-cg-theme=night] .cg-b-card{--th-card-glow:radial-gradient(600px 220px at var(--cg-mx,50%) var(--cg-my,0%), #6cb6ff1a, transparent 70%)}:root[data-cg-theme=night] .cg-b-card.cg-b-s{--th-card-glow:radial-gradient(600px 220px at var(--cg-mx,50%) var(--cg-my,0%), color-mix(in srgb, var(--cg-c) 10%, transparent), transparent 70%);--th-card-shadow-hover:0 0 0 1px color-mix(in srgb, var(--cg-c) 40%, transparent), 0 24px 56px -24px color-mix(in srgb, var(--cg-c) 40%, transparent)}:root[data-cg-theme=night] .cg-b-s:after{background:linear-gradient(90deg, transparent, var(--cg-c) 20%, var(--cg-c) 80%, transparent);height:2px;box-shadow:0 0 16px 1px color-mix(in srgb, var(--cg-c) 55%, transparent)}:root[data-cg-theme=night] .cg-b-profile:after{content:"";pointer-events:none;background:linear-gradient(90deg, transparent, var(--ai) 20%, var(--mw) 50%, var(--dev) 80%, transparent);height:1px;position:absolute;top:0;left:24px;right:24px;box-shadow:0 0 14px 1px #6cb6ff73}:root[data-cg-theme=night] .cg-b-photo{box-shadow:0 0 0 1px var(--line), 0 0 18px -4px #6cb6ff8c}:root[data-cg-theme=night] .cg-b-card .label{font-family:var(--mono);letter-spacing:.16em}:root[data-cg-theme=night] .cg-b-card .label:before{content:"";vertical-align:2px;background:var(--mw);width:5px;height:5px;box-shadow:0 0 8px var(--mw);border-radius:50%;margin-right:8px;display:inline-block}:root[data-cg-theme=night] .cg-b-more{background:var(--surface2);border-color:var(--line)}:root[data-cg-theme=night] .cg-b-card:hover .cg-b-more{color:var(--mw);border-color:var(--mw);box-shadow:0 0 12px -2px #6cb6ff99}:root[data-cg-theme=night] .cg-b-m .cg-b-v{text-shadow:0 0 24px #6cb6ff47}:root[data-cg-theme=night] .cg-b-m .cg-b-line{border-radius:999px;height:4px;position:relative;overflow:hidden}:root[data-cg-theme=night] .cg-b-m .cg-b-line.cg-b-thick{height:6px}:root[data-cg-theme=night] .cg-b-bar,:root[data-cg-theme=night] .cg-b-bar i{border-radius:999px}:root[data-cg-theme=night] .cg-b-sq{background:var(--mw);border-radius:3px;box-shadow:0 0 10px #6cb6ff8c}:root[data-cg-theme=night] .cg-b-sk{border-radius:10px}:root[data-cg-theme=night] .cg-b-dm button{background:var(--surface2);border-color:var(--line)}:root[data-cg-theme=night] .cg-b-dm button:hover{background:var(--mw-t);border-color:var(--mw)}:root[data-cg-theme=night] .cg-b-hm .cg-b-c{border-radius:3px}:root[data-cg-theme=night] button.cg-b-hm-row.cg-b-on{box-shadow:inset 2px 0 0 var(--mw)}:root[data-cg-theme=night] .cg-b-gantt .cg-b-band{background:linear-gradient(#6cb6ff24,#6cb6ff0f);box-shadow:inset 0 0 0 1px #6cb6ff40}:root[data-cg-theme=night] .cg-b-gantt .cg-b-bar.cg-b-on{box-shadow:0 0 10px #6cb6ff99}:root[data-cg-theme=night] .cg-b-era[aria-pressed=true]{background:color-mix(in srgb, var(--mw) 16%, var(--surface));color:var(--ink);border-color:var(--mw);box-shadow:0 0 0 1px var(--mw), 0 0 24px -6px #6cb6ff99}:root[data-cg-theme=night] .cg-b-ec:hover{border-color:var(--mw);box-shadow:0 0 0 1px #6cb6ff59,0 16px 40px -20px #6cb6ff73}:root[data-cg-theme=night] .cg-modal{--th-modal-border:transparent;--th-modal-bg:radial-gradient(700px 220px at 50% 0%, color-mix(in srgb, var(--th-accent) 10%, transparent), transparent 70%) local padding-box, linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(180deg, color-mix(in srgb, var(--th-accent) 60%, transparent), #ffffff12 30%, #ffffff0d) border-box;--th-modal-shadow:0 0 0 1px #0009, 0 40px 100px -24px color-mix(in srgb, var(--th-accent) 30%, transparent), 0 30px 80px -10px #000000b3;--th-stage:radial-gradient(60% 100% at 50% 0%, color-mix(in srgb, var(--th-accent) 18%, transparent), transparent 70%), #0b0d11}:root[data-cg-theme=night] .cg-modal-header:after{height:1px;box-shadow:0 0 12px color-mix(in srgb, var(--th-accent) 60%, transparent)}:root[data-cg-theme=night] .cg-ai-fab{color:var(--ink);background:linear-gradient(var(--surface2), var(--surface2)) padding-box, var(--th-grad) border-box;box-shadow:0 0 0 1px #00000080, 0 10px 40px -8px color-mix(in srgb, var(--ai) 45%, transparent);border:1px solid #0000}:root[data-cg-theme=night] .cg-ai-side{box-shadow:-30px 0 80px #0009}:root[data-cg-theme=night] .cg-ai-side:before{content:"";background:var(--th-grad);opacity:.7;pointer-events:none;height:1px;position:absolute;top:0;left:0;right:0}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=night] body:after{will-change:opacity, transform;animation:14s ease-in-out infinite alternate thNightBreath}:root[data-cg-theme=night] .cg-b-s.cg-b-pre:after{transform:scaleX(0)}:root[data-cg-theme=night] .cg-b-s.cg-b-in:after{transition:transform 1s var(--cg-b-ease) .35s}:root[data-cg-theme=night] .cg-b-in .cg-b-m .cg-b-line:after{content:"";background:linear-gradient(90deg,#0000,#ffffffbf,#0000);animation:1.2s cubic-bezier(.4,0,.2,1) 1.1s both thScan;position:absolute;inset:0;transform:translate(-100%)}:root[data-cg-theme=night] .cg-modal-kicker:before{animation:1.4s ease-out .35s 2 thPing}}:root[data-cg-theme=night][data-cg-motion=off] body:after,:root[data-cg-theme=night][data-cg-motion=off] .cg-modal-kicker:before{will-change:auto;animation:none}@keyframes thNightBreath{0%{opacity:.7;transform:translateY(-12px)}to{opacity:1;transform:none}}@keyframes thScan{to{transform:translate(100%)}}@keyframes thPing{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--th-accent) 60%, transparent)}to{box-shadow:0 0 0 9px #0000}}
:root[data-cg-theme=brutal]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#fbf3df;--surface:#fff;--surface2:#f4ecd6;--ink:#111;--sub:#333;--faint:#555;--line:#111;--ai:#5a32d9;--ai-t:#e5dcff;--mw:#0a5bd1;--mw-t:#d6ebff;--dev:#a44a00;--dev-t:#ffe2c2;--ok:#11723f;--ok-t:#d4f5e2;--warn:#8a5a00;--warn-t:#ffe7a8;--focus:#111;--scrim:#1111118c;--th-yellow:#ffd43b;--th-pink:#ff9ec4;--th-fill-ai:#c7b5ff;--th-fill-mw:#8fd0ff;--th-fill-dev:#ffbf6e;--th-stripes:linear-gradient(90deg, var(--th-fill-ai) 0 33.33%, var(--th-fill-mw) 33.33% 66.66%, var(--th-fill-dev) 66.66%);--th-dots:radial-gradient(#1111111a 1.2px, transparent 1.6px);--th-bw:3px;--th-r-card:14px;--th-r-item:10px;--th-r-pill:999px;--th-r-chip:6px;--th-r-modal:16px;--th-r-sheet:16px;--th-card-bg:var(--surface);--th-card-border:#111;--th-card-border-hover:#111;--th-card-shadow:6px 6px 0 #111;--th-card-shadow-hover:9px 9px 0 #111;--th-card-glow:none;--th-hover-transform:translate(-3px, -3px);--th-bar-off:#8a8a8a;--th-h2-size:21px;--th-v-size:clamp(36px, 9vw, 48px);--th-head-filter:none;--th-head-shadow:#1111112e;--th-scrim-bg:radial-gradient(#ffffff24 1.2px, transparent 1.6px) 0 0 / 14px 14px, var(--scrim);--th-backdrop:none;--th-btn-bg:#fff;--th-btn-border:#111;--th-btn-bg-hover:var(--th-yellow);--th-bounce:cubic-bezier(.34, 1.56, .64, 1);--th-modal-dur:.62s;--th-modal-ease:var(--th-bounce);--th-modal-from:translateY(-36px) rotate(-2deg) scale(.96);--th-draw-dur:.45s;--th-draw-ease:steps(3, end)}@supports (animation-timing-function:linear(0, 1)){:root[data-cg-theme=brutal]{--th-bounce:linear(0, .063 3.2%, .25 7.1%, .566 11.6%, .918 16%, 1.035 18.6%, 1.158 23%, 1.172 25%, 1.165 27%, 1.121 30.6%, 1.012 37.2%, .975 40.8%, .96 44.3%, .964 47%, .998 55.6%, 1.011 62%, 1.008 70%, 1)}}:root[data-cg-theme=brutal] body:before{background:var(--th-dots) 0 0 / 16px 16px}@media (min-width:1360px){:root[data-cg-theme=brutal] body:after{content:"";z-index:-1;pointer-events:none;background:radial-gradient(circle at 20px 34%, var(--th-pink) 0 56px, #111 56px 59px, transparent 59.5px), radial-gradient(circle at calc(100% - 24px) 68%, var(--th-fill-mw) 0 48px, #111 48px 51px, transparent 51.5px);width:100%;height:100lvh;position:fixed;top:0;left:0}}:root[data-cg-theme=brutal] .cg-b-profile{background:var(--th-yellow)}:root[data-cg-theme=brutal] .cg-b-profile:after{content:"";pointer-events:none;background:var(--th-stripes);height:10px;position:absolute;top:0;left:0;right:0;box-shadow:0 3px #111}:root[data-cg-theme=brutal] .cg-b-profile h1 em{background:linear-gradient(transparent 58%, var(--th-pink) 58% 94%, transparent 94%);color:#111;-webkit-box-decoration-break:clone;box-decoration-break:clone;-webkit-background-clip:border-box;background-clip:border-box}:root[data-cg-theme=brutal] .cg-b-photo{background:var(--th-pink);color:#111;box-shadow:0 0 0 3px #111,5px 5px 0 3px #111}:root[data-cg-theme=brutal] .cg-b-card .label,:root[data-cg-theme=brutal] .cg-b-s .cg-b-no{color:#fff;background:#111;border-radius:4px;padding:1px 8px;line-height:1.5;display:inline-block;transform:rotate(-2deg)}:root[data-cg-theme=brutal] .cg-b-card .label{font-family:var(--mono);letter-spacing:.1em}:root[data-cg-theme=brutal] .cg-b-s .cg-b-no{align-self:flex-start}:root[data-cg-theme=brutal] .cg-b-more{color:#fff;background:#111;border:2px solid #111}:root[data-cg-theme=brutal] .cg-b-card:hover .cg-b-more{background:var(--th-pink);color:#111;border-color:#111}:root[data-cg-theme=brutal] .cg-b-card.cg-b-s.cg-b-ai{background:var(--th-fill-ai)}:root[data-cg-theme=brutal] .cg-b-card.cg-b-s.cg-b-mw{background:var(--th-fill-mw)}:root[data-cg-theme=brutal] .cg-b-card.cg-b-s.cg-b-dev{background:var(--th-fill-dev)}:root[data-cg-theme=brutal] .cg-b-s:after{display:none}:root[data-cg-theme=brutal] .cg-b-s h2{color:#111}:root[data-cg-theme=brutal] .cg-b-s p{color:var(--sub)}:root[data-cg-theme=brutal] .cg-b-s li:before{background:#111}:root[data-cg-theme=brutal] .cg-b-s .cg-b-tags span{color:#fff;background:#111}:root[data-cg-theme=brutal] :focus-visible{outline-width:3px}:root[data-cg-theme=brutal] .cg-b-card:not(.cg-b-nohover):active{box-shadow:2px 2px #111}:root[data-cg-theme=brutal] .cg-b-m{border-top-width:3px;border-left-width:3px}:root[data-cg-theme=brutal] .cg-b-m .cg-b-v{color:#111;letter-spacing:-.03em}:root[data-cg-theme=brutal] .cg-b-m .cg-b-line{border-radius:999px;height:12px;box-shadow:inset 0 0 0 2px #111}:root[data-cg-theme=brutal] :is(.cg-b-m,.cg-b-ph) .cg-b-bar{outline-offset:-2px;background:#fff;border-radius:999px;outline:2px solid #111;height:12px}:root[data-cg-theme=brutal] .cg-b-sq{box-shadow:2px 2px 0 var(--th-pink);background:#111;border-radius:3px}:root[data-cg-theme=brutal] .cg-b-sk{border-radius:8px}:root[data-cg-theme=brutal] .cg-b-dm button{background:#fff;border:2px solid #111;font-weight:600;box-shadow:2px 2px #111}:root[data-cg-theme=brutal] .cg-b-dm button:hover{background:var(--th-yellow);border-color:#111}:root[data-cg-theme=brutal] .cg-b-backbtn{background:var(--th-yellow);border:2px solid #111;box-shadow:2px 2px #111}:root[data-cg-theme=brutal] .cg-b-hm .cg-b-c{border-radius:2px}:root[data-cg-theme=brutal] button.cg-b-hm-row.cg-b-on{background:#ffe98a}:root[data-cg-theme=brutal] .cg-b-era{background:#fff;border:2px solid #111;box-shadow:3px 3px #111}:root[data-cg-theme=brutal] .cg-b-era[aria-pressed=true]{color:#fff;box-shadow:3px 3px 0 var(--th-pink);background:#111;border-color:#111}:root[data-cg-theme=brutal] .cg-b-gantt .cg-b-band{background:color-mix(in srgb, var(--th-yellow) 55%, transparent);border-radius:4px;box-shadow:inset 2px 0 #111,inset -2px 0 #111}:root[data-cg-theme=brutal] .cg-b-gantt .cg-b-bar.cg-b-on{box-shadow:0 0 0 1px #111}:root[data-cg-theme=brutal] .cg-b-ec{background:#fff;border:2px solid #111;box-shadow:4px 4px #111}:root[data-cg-theme=brutal] .cg-b-ec:hover{border-color:#111;box-shadow:6px 6px #111}:root[data-cg-theme=brutal] .cg-b-ec .cg-b-im{border-bottom:2px solid #111}:root[data-cg-theme=brutal] .cg-b-ec .cg-b-im.cg-b-none{background:radial-gradient(#11111138 1.2px, transparent 1.6px) 0 0 / 10px 10px, var(--th-yellow);color:#111}:root[data-cg-theme=brutal] .cg-modal{--th-accent:#111;--th-head-bg:var(--th-yellow);--th-modal-border:#111;--th-modal-shadow:12px 12px 0 #111;--th-stage:radial-gradient(#11111129 1.2px, transparent 1.6px) 0 0 / 12px 12px, var(--th-yellow);border-width:3px}:root[data-cg-theme=brutal] .cg-modal:has(.cg-b-mb[data-cg-strength=ai]){--th-head-bg:var(--th-fill-ai);--th-stripes:var(--th-fill-ai)}:root[data-cg-theme=brutal] .cg-modal:has(.cg-b-mb[data-cg-strength=mw]){--th-head-bg:var(--th-fill-mw);--th-stripes:var(--th-fill-mw)}:root[data-cg-theme=brutal] .cg-modal:has(.cg-b-mb[data-cg-strength=dev]){--th-head-bg:var(--th-fill-dev);--th-stripes:var(--th-fill-dev)}:root[data-cg-theme=brutal] .cg-modal-header{border-bottom-width:3px}:root[data-cg-theme=brutal] .cg-modal-header:after{background:var(--th-stripes);height:8px;bottom:-11px;box-shadow:0 3px #111}:root[data-cg-theme=brutal] .cg-modal-kicker{color:#fff;background:#111;border-radius:6px;transform:rotate(-2deg)}:root[data-cg-theme=brutal] .cg-modal-kicker:before{background:var(--th-pink);box-shadow:0 0 0 2px #fff}:root[data-cg-theme=brutal] :is(.cg-modal-back,.cg-modal-close){border-width:2px;box-shadow:3px 3px #111}:root[data-cg-theme=brutal] .cg-modal-body h3{font-size:24px}:root[data-cg-theme=brutal] .cg-project-detail__name{font-size:28px;line-height:1.25}:root[data-cg-theme=brutal] .cg-modal .cg-project-detail .cg-facts{border-top-width:3px;border-bottom-width:3px}:root[data-cg-theme=brutal] .cg-modal .cg-project-detail .cg-facts :is(dt,dd):not(:first-of-type){border-left-width:2px}:root[data-cg-theme=brutal] .cg-section-label{color:#111;font-weight:700}:root[data-cg-theme=brutal] .cg-section-label:before{background:#111;border-radius:0;width:18px;height:6px}:root[data-cg-theme=brutal] .cg-section-label:after{background:#111;height:2px}:root[data-cg-theme=brutal] .cg-phase-grid span{color:#111;border:2px dashed #111}:root[data-cg-theme=brutal] .cg-phase-grid span.on{color:#fff;background:#111;border:2px solid #111}:root[data-cg-theme=brutal] .cg-tech-stack span{background:#fff;border:2px solid #111;border-radius:999px;box-shadow:2px 2px #111}:root[data-cg-theme=brutal] .cg-ext-link{color:#111;background:var(--th-yellow);border:2px solid #111;box-shadow:3px 3px #111}:root[data-cg-theme=brutal] .cg-ext-link:hover{background:var(--th-pink)}:root[data-cg-theme=brutal] .cg-modal-body>.cg-project-detail>.cg-project-image:first-child{border-bottom:3px solid #111}:root[data-cg-theme=brutal] .cg-project-item{background:#fff;border:2px solid #111}:root[data-cg-theme=brutal] .cg-project-item:hover{border-color:#111;box-shadow:4px 4px #111}:root[data-cg-theme=brutal] .cg-ai-fab{background:var(--th-yellow);color:#111;border:3px solid #111;box-shadow:4px 4px #111}:root[data-cg-theme=brutal] .cg-ai-dot{background:var(--th-pink)}:root[data-cg-theme=brutal] .cg-ai-side{border-left:3px solid #111;box-shadow:-8px 0 #111}:root[data-cg-theme=brutal] .cg-ai-tab[aria-selected=true]{border-bottom-color:#111}:root[data-cg-theme=brutal] .cg-ai-btn{box-shadow:3px 3px 0 var(--th-pink)}:root[data-cg-theme=brutal] :is(.cg-ai-close,.cg-ai-sug,.cg-ai-form input,.cg-ai-fit textarea){border:2px solid #111}:root[data-cg-theme=brutal] .cg-theme-switch .cg-theme-toggle{border-width:2px;box-shadow:3px 3px #111}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=brutal] .cg-b-reveal.cg-b-in:hover{transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s cubic-bezier(.2,.8,.2,1),border-color .2s}:root[data-cg-theme=brutal] .cg-b-card:not(.cg-b-nohover):active{transition-duration:80ms;transform:translate(2px,2px)}:root[data-cg-theme=brutal] body:after{will-change:transform;animation:7s ease-in-out infinite alternate thBrutalBob}}:root[data-cg-theme=brutal]{--th-rv-name:thBrutalStamp;--th-rv-below:thBrutalStampFlat;--th-rv-ease:var(--th-bounce)}@keyframes thBrutalStamp{0%{opacity:0;transform:translateY(-10px)rotate(-1.5deg)scale(.94)}20%{opacity:1}to{opacity:1;transform:none}}@keyframes thBrutalStampFlat{0%{opacity:0;transform:translateY(-10px)scale(.94)}20%{opacity:1}to{opacity:1;transform:none}}:root[data-cg-theme=brutal][data-cg-motion=off] body:after{will-change:auto;animation:none}@keyframes thBrutalBob{to{transform:translateY(-14px)}}
:root[data-cg-theme=terminal]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#050806;--surface:#0b100d;--surface2:#121a15;--ink:#d7f5df;--sub:#9fc4aa;--faint:#7fa58a;--line:#1f3326;--ai:#d29cff;--ai-t:#2a1a3a;--mw:#5ad8ff;--mw-t:#0a2a33;--dev:#ffb84a;--dev-t:#33240a;--ok:#4dff88;--ok-t:#0c2c18;--warn:#ffcf5a;--warn-t:#332a0a;--focus:#4dff88;--scrim:#000000bf;--th-pane:#24422f;--th-glow:#4dff8859;--th-scan:repeating-linear-gradient(0deg, #4dff880b 0 1px, transparent 1px 3px);--th-lights:radial-gradient(circle at 4px 4px, #ff5f57 0 3.2px, transparent 3.6px), radial-gradient(circle at 18px 4px, #febc2e 0 3.2px, transparent 3.6px), radial-gradient(circle at 32px 4px, #28c840 0 3.2px, transparent 3.6px);--th-bw:1px;--th-r-card:4px;--th-r-item:3px;--th-r-pill:3px;--th-r-chip:2px;--th-r-modal:6px;--th-r-sheet:8px;--th-card-bg:var(--surface);--th-card-border:var(--th-pane);--th-card-border-hover:var(--ok);--th-card-shadow:0 0 0 1px #0009;--th-card-shadow-hover:0 0 0 1px #4dff8859, 0 0 36px -10px var(--th-glow);--th-hover-transform:none;--th-bar-off:#4a6a55;--th-h1-size:clamp(24px, 2.6vw, 36px);--th-h1-lh:1.25;--th-h2-lh:1.4;--th-head-bg:#0f1612;--th-head-filter:none;--th-head-shadow:#0009;--th-scrim-bg:repeating-linear-gradient(0deg, #4dff880a 0 1px, transparent 1px 3px), var(--scrim);--th-backdrop:none;--th-btn-bg:transparent;--th-btn-border:var(--th-pane);--th-btn-bg-hover:var(--ok-t);--th-draw-dur:.5s}:root[data-cg-theme=terminal] body:before{background:radial-gradient(ellipse 120% 90% at 50% 35%, transparent 55%, #0009 100%), var(--th-scan)}:root[data-cg-theme=terminal] body:after{content:"";z-index:-1;pointer-events:none;background:linear-gradient(#0000,#4dff880d 70%,#4dff881a 96%,#0000);width:100%;height:160px;position:fixed;top:0;left:0;transform:translateY(-160px)}:root[data-cg-theme=terminal] .cg-b-card{--th-card-glow:radial-gradient(420px circle at var(--cg-mx,50%) var(--cg-my,0%), #4dff8814, transparent 65%)}:root[data-cg-theme=terminal] .cg-b-card:after{content:"";pointer-events:none;opacity:.85;background:var(--th-lights);width:40px;height:8px;position:absolute;top:6px;left:10px}:root[data-cg-theme=terminal] .cg-b-s:after{opacity:1;background:radial-gradient(circle at 14px 10px, #ff5f57 0 3.2px, transparent 3.6px), radial-gradient(circle at 28px 10px, #febc2e 0 3.2px, transparent 3.6px), radial-gradient(circle at 42px 10px, #28c840 0 3.2px, transparent 3.6px), linear-gradient(var(--cg-c), var(--cg-c)) 0 0 / 100% 2px no-repeat;width:auto;height:17px;top:0;left:0;right:0}:root[data-cg-theme=terminal] .cg-b-profile{box-shadow:0 0 0 1px #4dff8840, 0 0 60px -20px var(--th-glow)}:root[data-cg-theme=terminal] .cg-b-card .label{font-family:var(--mono);color:var(--ok);letter-spacing:.14em}:root[data-cg-theme=terminal] .cg-b-photo{background:var(--th-scan), var(--ground);box-shadow:0 0 0 1px var(--th-pane);color:color-mix(in srgb, var(--ok) 55%, var(--ground));border-radius:2px}:root[data-cg-theme=terminal] .cg-b-card .label:before{content:"";vertical-align:-.15em;background:currentColor;width:.55em;height:1em;margin-right:.55em;display:inline-block}:root[data-cg-theme=terminal] .cg-b-profile h1 em{background:linear-gradient(90deg, var(--ok), var(--mw));color:#0000;-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=terminal] .cg-b-profile h1:after{content:"";vertical-align:-.1em;background:var(--ok);width:.5em;height:.95em;box-shadow:0 0 12px var(--th-glow);margin-left:.15em;display:inline-block}:root[data-cg-theme=terminal] .cg-b-more{border-color:var(--th-pane);background:var(--ground);color:var(--sub);border-radius:2px}:root[data-cg-theme=terminal] .cg-b-card:hover .cg-b-more{background:var(--ok);border-color:var(--ok);color:var(--ground)}:root[data-cg-theme=terminal] .cg-b-s .cg-b-tags span{color:var(--cg-c);border-left:2px solid var(--cg-c);border-right:2px solid var(--cg-c);background:0 0;border-radius:0;padding:1px 4px}:root[data-cg-theme=terminal] .cg-b-m .cg-b-v{color:var(--ink);letter-spacing:-.02em;text-shadow:0 0 22px #4dff8859}:root[data-cg-theme=terminal] .cg-b-m .cg-b-v small{color:var(--sub)}:root[data-cg-theme=terminal] .cg-b-m .cg-b-line{filter:drop-shadow(0 0 5px #4dff888c);border-radius:0;height:3px}:root[data-cg-theme=terminal] .cg-b-m .cg-b-line.cg-b-thick{height:4px}:root[data-cg-theme=terminal] :is(.cg-b-bar,.cg-b-bar i){border-radius:0}:root[data-cg-theme=terminal] .cg-b-sq{background:var(--ok);box-shadow:0 0 8px var(--th-glow);border-radius:1px}:root[data-cg-theme=terminal] .cg-b-sk{border-radius:2px}:root[data-cg-theme=terminal] .cg-b-dm button{border-color:var(--th-pane);background:var(--ground);border-radius:2px}:root[data-cg-theme=terminal] .cg-b-dm button:hover{border-color:var(--ok);background:var(--ok-t)}:root[data-cg-theme=terminal] .cg-b-hm .cg-b-c{border-radius:1px}:root[data-cg-theme=terminal] button.cg-b-hm-row.cg-b-on{box-shadow:inset 2px 0 0 var(--ok)}:root[data-cg-theme=terminal] .cg-b-era{border-color:var(--th-pane);background:var(--ground);border-radius:2px}:root[data-cg-theme=terminal] .cg-b-gantt .cg-b-band{background:#4dff8812;border-radius:0;box-shadow:inset 1px 0 #4dff8873,inset -1px 0 #4dff8873}:root[data-cg-theme=terminal] .cg-b-gantt .cg-b-bar.cg-b-on{box-shadow:0 0 8px #5ad8ff8c}:root[data-cg-theme=terminal] .cg-b-ec{border-color:var(--th-pane);background:var(--ground)}:root[data-cg-theme=terminal] .cg-b-ec:hover{border-color:var(--ok);box-shadow:0 0 28px -10px var(--th-glow)}:root[data-cg-theme=terminal] .cg-b-ec .cg-b-im.cg-b-none{background:repeating-linear-gradient(0deg, #4dff8812 0 1px, transparent 1px 3px), var(--surface2)}:root[data-cg-theme=terminal] .cg-modal{--th-accent:var(--ok);--th-accent-grad:linear-gradient(90deg, var(--ok), var(--mw));--th-modal-border:var(--th-pane);--th-modal-shadow:0 0 0 1px #000, 0 0 80px -20px var(--th-glow), 0 30px 80px -10px #000c;--th-stage:repeating-linear-gradient(0deg, #4dff880f 0 1px, transparent 1px 3px), radial-gradient(60% 100% at 50% 0%, #4dff881f, transparent 70%), #030504}:root[data-cg-theme=terminal] .cg-modal-header:after{height:1px;box-shadow:0 0 10px var(--th-glow)}:root[data-cg-theme=terminal] .cg-modal-kicker{color:var(--ok);letter-spacing:.16em;background:0 0;padding:5px 0}:root[data-cg-theme=terminal] .cg-modal-kicker:before{background:#ff5f57;width:8px;height:8px;margin-right:30px;box-shadow:13px 0 #febc2e,26px 0 #28c840}:root[data-cg-theme=terminal] .cg-modal-kicker:after{content:"";background:var(--ok);width:.55em;height:1.05em}:root[data-cg-theme=terminal] :is(.cg-modal-back,.cg-modal-close):hover{background:var(--ok);border-color:var(--ok);color:var(--ground)}:root[data-cg-theme=terminal] .cg-section-label{color:var(--ok);letter-spacing:.1em}:root[data-cg-theme=terminal] .cg-section-label:before{background:var(--ok);border-radius:0;width:.55em;height:1em}:root[data-cg-theme=terminal] .cg-section-label:after{background:repeating-linear-gradient(90deg, var(--th-pane) 0 4px, transparent 4px 8px)}:root[data-cg-theme=terminal] .cg-modal .cg-project-detail .cg-facts dd.mono{color:var(--ok)}:root[data-cg-theme=terminal] .cg-phase-grid span{border-color:var(--th-pane)}:root[data-cg-theme=terminal] .cg-phase-grid span.on{background:var(--ok);border-color:var(--ok);color:var(--ground)}:root[data-cg-theme=terminal] .cg-tech-stack span{border:0;border-left:2px solid var(--mw);border-right:2px solid var(--mw);background:0 0;border-radius:0;padding:1px 6px}:root[data-cg-theme=terminal] .cg-ext-link{color:var(--ok);border-color:var(--ok);background:0 0}:root[data-cg-theme=terminal] .cg-ext-link:hover{background:var(--ok);color:var(--ground)}:root[data-cg-theme=terminal] .cg-project-item{border-color:var(--th-pane);background:var(--ground)}:root[data-cg-theme=terminal] .cg-project-item:hover{border-color:var(--ok);box-shadow:0 0 24px -10px var(--th-glow)}:root[data-cg-theme=terminal] .cg-ai-fab{background:var(--surface);color:var(--ink);border:1px solid var(--ok);box-shadow:0 0 28px -8px var(--th-glow);border-radius:4px}:root[data-cg-theme=terminal] .cg-ai-dot{--ai:var(--ok);--mw:var(--ok);border-radius:1px}:root[data-cg-theme=terminal] .cg-ai-side{border-left-color:var(--th-pane);box-shadow:-30px 0 80px #000000b3}:root[data-cg-theme=terminal] .cg-ai-tab[aria-selected=true]{border-bottom-color:var(--ok)}:root[data-cg-theme=terminal] .cg-ai-btn{background:var(--ok);color:var(--ground);border-radius:3px}:root[data-cg-theme=terminal] :is(.cg-ai-close,.cg-ai-sug,.cg-ai-form input,.cg-ai-fit textarea){border-color:var(--th-pane);border-radius:3px}:root[data-cg-theme=terminal] .cg-theme-switch .cg-theme-toggle{border-color:var(--th-pane);box-shadow:0 0 20px -6px var(--th-glow)}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=terminal] body:after{will-change:transform;animation:9s linear infinite thTermSweep}:root[data-cg-theme=terminal] .cg-b-reveal.cg-b-pre{opacity:0;filter:none;transform:none}:root[data-cg-theme=terminal] .cg-b-reveal.cg-b-in{transform-origin:50% 0;animation:.6s cubic-bezier(.2,.9,.2,1) backwards thCrtOn;animation-delay:calc(var(--cg-b-i,0) * 80ms);transition:none}:root[data-cg-theme=terminal] .cg-b-reveal.cg-b-in:hover{transition:box-shadow .3s,border-color .2s}:root[data-cg-theme=terminal] .cg-b-profile h1 em{background:linear-gradient(90deg, var(--ok) 0%, var(--mw) 40%, #f0fff4 50%, var(--mw) 60% 100%);background-position:0 0;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;animation:1.4s cubic-bezier(.4,0,.2,1) .7s both thDecode}:root[data-cg-theme=terminal] .cg-b-profile h1:after{animation:1s linear 1.3s 4 thBlink}:root[data-cg-theme=terminal] .cg-modal-kicker:after{animation:1s linear .4s 3 thBlink}}@media (prefers-reduced-motion:no-preference) and (min-width:601px){:root[data-cg-theme=terminal] .cg-modal{animation:.5s cubic-bezier(.2,.9,.2,1) both thCrtOn}}:root[data-cg-theme=terminal][data-cg-motion=off] body:after,:root[data-cg-theme=terminal][data-cg-motion=off] .cg-b-profile h1:after,:root[data-cg-theme=terminal][data-cg-motion=off] .cg-modal-kicker:after{will-change:auto;animation:none}@keyframes thTermSweep{0%{transform:translateY(-160px)}to{transform:translateY(100lvh)}}@keyframes thCrtOn{0%{opacity:0;transform:scale(.9,.02)}35%{opacity:1;transform:scaleY(.02)}to{opacity:1;transform:none}}@keyframes thDecode{0%{background-position:100% 0}to{background-position:0 0}}@keyframes thBlink{0%,49%{opacity:1}50%,to{opacity:0}}
:root[data-cg-theme=magazine]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f1ece2;--surface:#faf7f1;--surface2:#e9e2d4;--ink:#151310;--sub:#47423a;--faint:#5e584e;--line:#cbc2b0;--ai:#4b33b0;--ai-t:#e6e0f3;--mw:#1b56a3;--mw-t:#dde6f1;--dev:#a3400f;--dev-t:#f3dccf;--ok:#196b3c;--ok-t:#dcefe2;--warn:#8a5300;--warn-t:#f5e3c4;--focus:#b8321a;--scrim:#f1ece2e0;--th-red:#b8321a;--th-bw:1px;--th-r-card:0;--th-r-item:0;--th-r-pill:0;--th-r-chip:0;--th-r-modal:0;--th-r-sheet:0;--th-card-bg:linear-gradient(var(--ink), var(--ink)) 0 5px / 100% 1px no-repeat, var(--surface);--th-card-border:var(--ink);--th-card-border-hover:var(--ink);--th-card-shadow:none;--th-card-shadow-hover:none;--th-card-glow:none;--th-hover-transform:none;--th-bar-off:#8e8677;--th-h1-size:clamp(26px, 3vw, 42px);--th-h1-lh:1.1;--th-h1-ls:-.02em;--th-h1-mt:10px;--th-name-size:26px;--th-h2-size:22px;--th-h2-lh:1.3;--th-v-size:clamp(36px, 9vw, 56px);--th-head-bg:var(--surface);--th-head-filter:none;--th-head-shadow:#1513101a;--th-backdrop:none;--th-btn-bg:transparent;--th-btn-border:transparent;--th-btn-bg-hover:transparent;--th-modal-dur:.55s;--th-modal-ease:cubic-bezier(.16, 1, .3, 1);--th-modal-from:translateY(28px);--th-draw-dur:.8s}:root[data-cg-theme=magazine] .cg-b-card{border-width:4px 0 0;padding:17px 25px 21px}:root[data-cg-theme=magazine] .cg-b-s{border-top-color:var(--cg-c);padding:15px 21px 17px}:root[data-cg-theme=magazine] .cg-b-metrics{padding:0}:root[data-cg-theme=magazine] .cg-b-m{padding-top:14px}:root[data-cg-theme=magazine] .cg-b-profile{background:0 0;border-width:8px 0 1px;padding:15px 27px 22px}@media (max-width:600px){:root[data-cg-theme=magazine] :is(.cg-b-card,.cg-b-s){padding:13px 19px 17px}:root[data-cg-theme=magazine] .cg-b-profile{padding:9px 19px 16px}:root[data-cg-theme=magazine] .cg-b-metrics{padding:0}}:root[data-cg-theme=magazine] .cg-b-card:not(.cg-b-nohover):hover{border-top-color:var(--th-red)}:root[data-cg-theme=magazine] .cg-b-card.cg-b-s:not(.cg-b-nohover):hover{border-top-color:var(--cg-c)}:root[data-cg-theme=magazine] .cg-b-s:hover h2{text-underline-offset:5px;text-decoration:underline;text-decoration-thickness:2px}:root[data-cg-theme=magazine] .cg-b-card .label{color:var(--th-red);letter-spacing:.28em}:root[data-cg-theme=magazine] .cg-b-card .label:before{content:"";vertical-align:middle;background:var(--th-red);width:18px;height:2px;margin-right:10px;display:inline-block}:root[data-cg-theme=magazine] .cg-b-profile .cg-b-nm{align-items:center}:root[data-cg-theme=magazine] .cg-b-profile .cg-b-nm b{background:var(--th-red);width:40px;height:40px;color:var(--surface);place-items:center;line-height:1;display:inline-grid}:root[data-cg-theme=magazine] .cg-b-profile .cg-b-nm span{letter-spacing:.08em}:root[data-cg-theme=magazine] .cg-b-photo{box-shadow:0 0 0 1px var(--ink);color:var(--faint);border-radius:0}:root[data-cg-theme=magazine] .cg-b-profile h1{color:var(--ink)}:root[data-cg-theme=magazine] .cg-b-profile h1 em{color:var(--th-red);background:0 0;-webkit-background-clip:border-box;background-clip:border-box}:root[data-cg-theme=magazine] .cg-b-more{color:var(--ink);text-underline-offset:3px;background:0 0;border:0;padding:2px 14px 2px 0;text-decoration:underline}:root[data-cg-theme=magazine] .cg-b-more:after{content:"";border-top:1.5px solid;border-right:1.5px solid;width:6px;height:6px;position:absolute;top:50%;right:2px;transform:translateY(-50%)rotate(45deg)}:root[data-cg-theme=magazine] .cg-b-card:hover .cg-b-more{color:var(--th-red);border-color:#0000}:root[data-cg-theme=magazine] .cg-b-s:after{display:none}:root[data-cg-theme=magazine] .cg-b-s .cg-b-no{letter-spacing:.2em}:root[data-cg-theme=magazine] .cg-b-s h2{color:var(--ink)}:root[data-cg-theme=magazine] .cg-b-s .cg-b-tags span{color:var(--cg-c);box-shadow:inset 1px 0 0 var(--line);background:0 0}:root[data-cg-theme=magazine] .cg-b-s .cg-b-tags span:first-child{box-shadow:none}:root[data-cg-theme=magazine] .cg-b-m{border-left-color:var(--ink)}:root[data-cg-theme=magazine] .cg-b-m .cg-b-v{letter-spacing:-.04em;color:var(--ink);line-height:.92}:root[data-cg-theme=magazine] .cg-b-m .cg-b-v small{letter-spacing:0;color:var(--sub);font-size:15px}:root[data-cg-theme=magazine] .cg-b-m .cg-b-l{letter-spacing:.12em;font-weight:600}:root[data-cg-theme=magazine] .cg-b-m .cg-b-line{border-radius:0;height:3px}:root[data-cg-theme=magazine] .cg-b-m .cg-b-line.cg-b-thick{height:4px}:root[data-cg-theme=magazine] :is(.cg-b-bar,.cg-b-bar i,.cg-b-hm .cg-b-c){border-radius:0}:root[data-cg-theme=magazine] .cg-b-sq{background:var(--ink);border-radius:0}:root[data-cg-theme=magazine] .cg-b-col h4{color:var(--ink);letter-spacing:.16em;border-top:1px solid var(--ink);padding-top:6px}:root[data-cg-theme=magazine] .cg-b-skg{border-top:1px solid var(--ink);padding-top:6px}:root[data-cg-theme=magazine] .cg-b-sk{box-shadow:inset 0 -1px 0 var(--line);border-radius:0}:root[data-cg-theme=magazine] :is(.cg-b-dm button,.cg-b-backbtn){border:1px solid var(--ink);background:0 0}:root[data-cg-theme=magazine] .cg-b-dm button:hover{background:var(--ink);color:var(--surface);border-color:var(--ink)}:root[data-cg-theme=magazine] .cg-b-dm button:hover small{color:var(--surface)}:root[data-cg-theme=magazine] .cg-b-era{border:0;border-top:3px solid var(--ink);background:0 0}:root[data-cg-theme=magazine] .cg-b-gantt .cg-b-band{background:color-mix(in srgb, var(--th-red) 9%, transparent);box-shadow:inset 1px 0 0 var(--th-red), inset -1px 0 0 var(--th-red);border-radius:0}:root[data-cg-theme=magazine] .cg-b-gantt .cg-b-bar.cg-b-on{background:var(--th-red)}:root[data-cg-theme=magazine] .cg-b-axis{border-top:1px solid var(--ink);padding-top:4px}:root[data-cg-theme=magazine] .cg-b-ec{border:0;border-top:2px solid var(--ink);background:0 0}:root[data-cg-theme=magazine] .cg-b-ec:hover{border-top-color:var(--th-red)}:root[data-cg-theme=magazine] .cg-b-ec:hover b{text-underline-offset:3px;text-decoration:underline}:root[data-cg-theme=magazine] .cg-b-ec .cg-b-tx{padding:10px 0 12px}:root[data-cg-theme=magazine] .cg-b-ec .cg-b-im.cg-b-none{background:repeating-linear-gradient(135deg, var(--surface2) 0 1px, transparent 1px 7px), var(--ground)}:root[data-cg-theme=magazine] .cg-modal{--th-accent:var(--th-red);--th-accent-grad:linear-gradient(var(--th-red), var(--th-red));--th-modal-border:var(--ink);--th-modal-shadow:0 40px 90px -30px #15131073;--th-stage:var(--surface2);border-top-width:8px}:root[data-cg-theme=magazine] .cg-modal[aria-label=PROFILE]{--th-accent:var(--th-red);--th-accent-grad:linear-gradient(var(--th-red), var(--th-red))}:root[data-cg-theme=magazine] .cg-modal-header{border-bottom-color:var(--ink)}:root[data-cg-theme=magazine] .cg-modal-header:after{height:3px;bottom:-5px}:root[data-cg-theme=magazine] .cg-modal-kicker{color:var(--th-red);letter-spacing:.24em;background:0 0;padding:5px 0}:root[data-cg-theme=magazine] .cg-modal-kicker:before{box-shadow:none;border-radius:0}:root[data-cg-theme=magazine] :is(.cg-modal-back,.cg-modal-close){text-underline-offset:3px;padding:7px 4px;text-decoration:underline}:root[data-cg-theme=magazine] :is(.cg-modal-back,.cg-modal-close):hover{color:var(--th-red)}:root[data-cg-theme=magazine] .cg-modal-body{gap:18px}:root[data-cg-theme=magazine] .cg-modal-body h3{letter-spacing:-.02em;font-size:28px;line-height:1.25}:root[data-cg-theme=magazine] .cg-modal-body .cg-project-detail__name{font-size:32px}:root[data-cg-theme=magazine] .cg-project-detail__company{letter-spacing:.14em;font-size:12px}:root[data-cg-theme=magazine] .cg-project-detail>p:not([class]){font-size:15.5px;line-height:1.95}:root[data-cg-theme=magazine] .cg-project-detail>p:not([class]):first-letter{float:left;font:900 3.1em/.95 var(--disp);color:var(--th-red);margin:.06em .14em 0 0}:root[data-cg-theme=magazine] .cg-b-mb>p{font:700 18px/1.7 var(--disp)}:root[data-cg-theme=magazine] .cg-modal .cg-facts{border-top:2px solid var(--ink)}:root[data-cg-theme=magazine] .cg-modal .cg-project-detail .cg-facts{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink)}:root[data-cg-theme=magazine] .cg-modal .cg-project-detail .cg-facts dt{letter-spacing:.14em}:root[data-cg-theme=magazine] .cg-modal .cg-project-detail .cg-facts dd{font-size:15px;font-weight:700}:root[data-cg-theme=magazine] .cg-section-label{color:var(--ink);letter-spacing:.2em}:root[data-cg-theme=magazine] .cg-section-label:before{border-radius:0;width:18px;height:3px}:root[data-cg-theme=magazine] .cg-section-label:after{background:var(--ink)}:root[data-cg-theme=magazine] .cg-phase-grid span{border-color:color-mix(in srgb, var(--ink) 45%, transparent)}:root[data-cg-theme=magazine] .cg-phase-grid span.on{background:var(--ink);border-color:var(--ink);color:var(--surface)}:root[data-cg-theme=magazine] .cg-tech-stack{gap:0}:root[data-cg-theme=magazine] .cg-tech-stack span{box-shadow:inset 1px 0 0 var(--line);background:0 0;border:0;padding:2px 12px}:root[data-cg-theme=magazine] .cg-tech-stack span:first-child{box-shadow:none;padding-left:0}:root[data-cg-theme=magazine] .cg-ext-link{border:0;border-bottom:2px solid var(--ink);color:var(--ink);background:0 0;padding:4px 0}:root[data-cg-theme=magazine] .cg-ext-link:hover{color:var(--th-red);border-bottom-color:var(--th-red);background:0 0;text-decoration:none}:root[data-cg-theme=magazine] .cg-modal-body>.cg-project-detail>.cg-project-image:first-child{border-bottom:1px solid var(--ink)}:root[data-cg-theme=magazine] .cg-project-item{border:0;border-top:1px solid var(--ink);background:0 0;padding-left:8px}:root[data-cg-theme=magazine] .cg-project-item:hover{background:var(--surface2);border-top-color:var(--th-red);box-shadow:none}:root[data-cg-theme=magazine] .cg-ai-fab{background:var(--ink);color:var(--surface);border-radius:0}:root[data-cg-theme=magazine] .cg-ai-dot{--ai:var(--th-red);--mw:var(--th-red);border-radius:0}:root[data-cg-theme=magazine] .cg-ai-side{border-left:3px solid var(--ink);box-shadow:-30px 0 80px -30px #15131059}:root[data-cg-theme=magazine] .cg-ai-tab[aria-selected=true]{border-bottom-color:var(--ink)}:root[data-cg-theme=magazine] :is(.cg-ai-btn,.cg-ai-close,.cg-ai-sug,.cg-ai-ref,.cg-ai-form input,.cg-ai-fit textarea,.cg-ai-msg){border-radius:0}:root[data-cg-theme=magazine] .cg-theme-switch .cg-theme-toggle{box-shadow:none;border-color:var(--ink)}:root[data-cg-theme=magazine] body:after{content:"";z-index:45;pointer-events:none;background:var(--th-red);transform-origin:50% 0;width:4px;height:100lvh;position:fixed;top:0;left:0;transform:scaleY(0)}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=magazine] body:after{animation:linear both thProgress;animation-timeline:scroll(root)}}}@keyframes thProgress{to{transform:scaleY(1)}}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=magazine] .cg-b-reveal.cg-b-in:hover{transition:border-color .2s}:root[data-cg-theme=magazine] .cg-b-profile.cg-b-in h1{animation:.9s cubic-bezier(.16,1,.3,1) backwards thInkRise}}:root[data-cg-theme=magazine]{--th-rv-name:thMagDrop;--th-rv-below:thMagDrop;--th-rv-dur:.8s;--th-rv-ease:cubic-bezier(.16, 1, .3, 1);--th-rv-step:80ms}@keyframes thMagDrop{0%{opacity:0;transform:translateY(-8px)}20%{opacity:1}to{opacity:1;transform:none}}@keyframes thInkRise{0%{transform:translateY(.35em)}to{transform:none}}
:root[data-cg-theme=holo]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#eef0f5;--surface:#fbfbfd;--surface2:#eceef4;--ink:#14151c;--sub:#454857;--faint:#5c6072;--line:#d9dce6;--ai:#5840d6;--ai-t:#ece8fd;--mw:#1360c0;--mw-t:#e6eefc;--dev:#9a4f06;--dev-t:#fbeedd;--ok:#157a42;--ok-t:#e1f4e8;--warn-t:#fcefd9;--focus:#5840d6;--scrim:#28284647;--th-holo-lin:linear-gradient(115deg, #ff8ad8, #ffd36e 20%, #8affc1 40%, #6ec8ff 60%, #b18cff 80%, #ff8ad8);--th-holo-ink:linear-gradient(100deg, #6a3ce0, #1a6fd6 30%, #0f8a7a 50%, #b2439e 75%, #6a3ce0);--th-holo-dot:conic-gradient(#ff8ad8, #ffd36e, #8affc1, #6ec8ff, #b18cff, #ff8ad8);--th-bw:1.5px;--th-r-card:20px;--th-r-item:14px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:24px;--th-r-sheet:24px;--th-card-border:transparent;--th-card-border-hover:transparent;--th-card-shadow:inset 0 1px 0 #ffffffe6, 0 12px 32px -14px #3c327838;--th-card-shadow-hover:inset 0 1px 0 #ffffffe6, 0 22px 44px -16px #5a3cc84d;--th-hover-transform:translateY(-3px);--th-bar-off:#8a8ca0;--th-head-bg:color-mix(in srgb, var(--surface) 92%, transparent);--th-head-filter:none;--th-backdrop:blur(8px);--th-btn-bg:color-mix(in srgb, var(--ink) 5%, transparent);--th-btn-border:transparent;--th-btn-bg-hover:color-mix(in srgb, var(--ink) 9%, transparent);--th-modal-from:translateY(16px) scale(.95)}:root[data-cg-theme=holo] body:before{background:radial-gradient(70% 50% at 30% 10%,#ffffffe6,#0000 70%),repeating-linear-gradient(115deg,#0000 0 140px,#ff8ad81a 150px,#6ec8ff1a 160px,#8affc114 170px,#0000 180px 320px);width:120%;height:120lvh;top:-10%;left:-10%}:root[data-cg-theme=holo] .cg-b-card{--th-card-glow:linear-gradient(115deg, transparent 35%, #ffffffa6 46%, #ff8ad81a 50%, #6ec8ff1f 54%, transparent 65%) calc(var(--cg-mx,0px) - 200px) 0 / 400px 100% no-repeat;background:linear-gradient(var(--surface), var(--surface)) padding-box, var(--th-holo-lin) border-box;background-size:auto,300% 300%;background-position:0 0, calc(var(--cg-mx,120px) * -.5) calc(var(--cg-my,40px) * -.5)}:root[data-cg-theme=holo] .cg-b-profile:after{content:"";pointer-events:none;background:var(--th-holo-lin);background-size:200% 100%;background-position:calc(var(--cg-mx,0px) * -.4) 0;height:5px;position:absolute;top:0;left:0;right:0}:root[data-cg-theme=holo] .cg-b-photo{background:linear-gradient(var(--surface2), var(--surface2)) padding-box, var(--th-holo-lin) border-box;box-shadow:none;border:2px solid #0000}:root[data-cg-theme=holo] .cg-b-profile h1 em{background:var(--th-holo-ink);background-size:200% 100%;background-position:calc(var(--cg-mx,0px) * -.3) 0;color:#0000;-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=holo] .cg-b-card .label:before{content:"";vertical-align:0;background:var(--th-holo-dot);border-radius:50%;width:7px;height:7px;margin-right:8px;display:inline-block}:root[data-cg-theme=holo] .cg-b-s:after{background:linear-gradient(90deg, var(--cg-c), color-mix(in srgb, var(--cg-c) 45%, #ff8ad8), color-mix(in srgb, var(--cg-c) 45%, #6ec8ff));height:3px}:root[data-cg-theme=holo] .cg-b-m .cg-b-v{color:var(--ink)}:root[data-cg-theme=holo] .cg-b-m .cg-b-line{border-radius:999px;position:relative;overflow:hidden}:root[data-cg-theme=holo] .cg-b-m .cg-b-line:after{content:"";background:var(--th-holo-lin);mix-blend-mode:soft-light;opacity:.9;position:absolute;inset:0}:root[data-cg-theme=holo] .cg-b-sq{background:var(--th-holo-ink);border-radius:50%}:root[data-cg-theme=holo] .cg-b-era[aria-pressed=true]{background:linear-gradient(var(--ink), var(--ink)) padding-box, var(--th-holo-lin) border-box;color:var(--ground);border-color:#0000}:root[data-cg-theme=holo] .cg-b-gantt .cg-b-band{background:color-mix(in srgb, var(--ai-t) 60%, var(--mw-t))}:root[data-cg-theme=holo] .cg-b-hm .cg-b-c{border-radius:4px}:root[data-cg-theme=holo] .cg-modal{--th-accent-grad:var(--th-holo-lin);--th-modal-border:transparent;--th-modal-bg:linear-gradient(var(--surface), var(--surface)) padding-box, var(--th-holo-lin) border-box;--th-modal-shadow:0 40px 90px -30px #3c327873;--th-stage:radial-gradient(80% 120% at 20% 0%, #ff8ad838, transparent 60%), radial-gradient(70% 120% at 85% 100%, #6ec8ff38, transparent 60%), var(--surface2);border-width:1.5px}:root[data-cg-theme=holo] .cg-modal-header:after{height:3px}:root[data-cg-theme=holo] .cg-modal-kicker:before,:root[data-cg-theme=holo] .cg-ai-dot{background:var(--th-holo-dot)}:root[data-cg-theme=holo] .cg-ai-fab{color:var(--ink);background:linear-gradient(var(--surface), var(--surface)) padding-box, var(--th-holo-lin) border-box;border:1.5px solid #0000;box-shadow:0 12px 30px -10px #5a3cc859}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=holo] body:before{will-change:transform;animation:40s ease-in-out infinite alternate thHoloDrift}:root[data-cg-theme=holo] .cg-b-profile h1 em{animation:thHoloFlash 1.6s var(--th-ease-out) .5s backwards}}@keyframes thHoloDrift{to{transform:translate(-4%,3%)rotate(1.5deg)}}@keyframes thHoloFlash{0%{background-position:100% 0}to{background-position:0 0}}
:root[data-cg-theme=neural]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#070a1a;--surface:#0e1330;--surface2:#161c40;--ink:#e6ebff;--sub:#a9b3e0;--faint:#8791c4;--line:#242c5a;--ai:#c4a6ff;--ai-t:#2a1f55;--mw:#5fd4ff;--mw-t:#0c2a4a;--dev:#ffb36b;--dev-t:#3a2612;--ok:#5ef0b0;--ok-t:#0e2e24;--warn:#ffcf6e;--warn-t:#3a2d10;--focus:#5fd4ff;--scrim:#02040cb3;--th-syn-a:#3ee6ff;--th-syn-b:#ff5ecf;--th-neu-net:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 100' preserveAspectRatio='xMidYMid slice' fill='none' stroke-linecap='round'%3E%3Cpath d='M8 14L30 8L52 22L74 10L96 26L122 12L148 22M8 14L18 44L44 52L70 40L98 56L126 44L152 58M30 8L44 52M52 22L70 40M96 26L98 56M122 12L126 44M18 44L10 80L38 88L64 74L90 90L116 78L144 92M44 52L38 88M70 40L64 74M98 56L90 90M126 44L116 78M152 58L144 92M74 10L70 40M148 22L152 58' stroke='%236d7cff' stroke-opacity='.28' stroke-width='.12'/%3E%3Cpath d='M8 14h0M30 8h0M52 22h0M74 10h0M96 26h0M122 12h0M148 22h0M18 44h0M44 52h0M70 40h0M98 56h0M126 44h0M152 58h0M10 80h0M38 88h0M64 74h0M90 90h0M116 78h0M144 92h0' stroke='%238fa0ff' stroke-opacity='.55' stroke-width='.9'/%3E%3C/svg%3E");--th-bw:1px;--th-r-card:16px;--th-r-item:12px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:20px;--th-r-sheet:20px;--th-card-bg:var(--surface);--th-card-border:#27306a;--th-card-border-hover:var(--mw);--th-card-shadow:0 0 0 1px #0006, 0 24px 48px -24px #000c;--th-card-shadow-hover:0 0 0 1px #5fd4ff59, 0 0 40px -12px #5fd4ff73;--th-hover-transform:translateY(-2px);--th-bar-off:#5c67a0;--th-h1-size:clamp(24px, 2.7vw, 38px);--th-h1-lh:1.2;--th-head-bg:color-mix(in srgb, var(--surface) 96%, transparent);--th-head-filter:none;--th-backdrop:blur(6px);--th-btn-bg:var(--surface2);--th-btn-border:var(--line);--th-btn-bg-hover:#20285a}:root[data-cg-theme=neural] body:before{background:var(--th-neu-net) center / 100% 100% no-repeat;height:calc(100lvh + 160px)}:root[data-cg-theme=neural] body:after{content:"";z-index:-1;pointer-events:none;opacity:.75;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 160 100' preserveAspectRatio='xMidYMid slice' fill='none' stroke-linecap='round'%3E%3Cg stroke='%233ee6ff'%3E%3Cpath d='M30 8h0M126 44h0M98 56h0M144 92h0' stroke-opacity='.16' stroke-width='3.6'/%3E%3Cpath d='M30 8h0M126 44h0M98 56h0M144 92h0' stroke-width='1'/%3E%3C/g%3E%3Cg stroke='%23ff5ecf'%3E%3Cpath d='M70 40h0M18 44h0M64 74h0M52 22h0' stroke-opacity='.16' stroke-width='3.6'/%3E%3Cpath d='M70 40h0M18 44h0M64 74h0M52 22h0' stroke-width='1'/%3E%3C/g%3E%3C/svg%3E") 50%/100% 100% no-repeat;width:100%;height:calc(100lvh + 160px);position:fixed;top:0;left:0}:root[data-cg-theme=neural] .cg-b-card{--th-card-glow:radial-gradient(420px circle at var(--cg-mx,50%) var(--cg-my,0%), #3ee6ff1a, transparent 65%)}:root[data-cg-theme=neural] .cg-b-card:after{content:"";pointer-events:none;background:radial-gradient(circle, var(--th-syn-a) 0 3px, #3ee6ff4d 3.5px 5px, transparent 5.5px) -5px 50% / 10px 10px no-repeat, radial-gradient(circle, var(--th-syn-b) 0 3px, #ff5ecf4d 3.5px 5px, transparent 5.5px) calc(100% + 5px) 50% / 10px 10px no-repeat, linear-gradient(90deg, transparent, var(--th-edge,#5fd4ff99), transparent) 0 0 / 100% 1px no-repeat;width:auto;height:auto;position:absolute;inset:0}:root[data-cg-theme=neural] .cg-b-card.cg-b-s{--th-edge:var(--cg-c)}:root[data-cg-theme=neural] .cg-b-profile h1 em{background:linear-gradient(90deg, var(--th-syn-a), var(--th-syn-b) 55%, var(--ai));color:#0000;-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=neural] .cg-b-photo{color:color-mix(in srgb, var(--th-syn-a) 45%, var(--surface2));box-shadow:0 0 0 1px #3ee6ff8c,0 0 16px -2px #3ee6ff73}:root[data-cg-theme=neural] .cg-b-card .label:before{content:"";vertical-align:1px;background:radial-gradient(circle, var(--th-syn-a) 0 2.5px, transparent 3px) 0 50% / 6px 6px no-repeat, linear-gradient(90deg, #3ee6ffb3, transparent) 6px 50% / 12px 1px no-repeat;width:18px;height:6px;margin-right:8px;display:inline-block}:root[data-cg-theme=neural] .cg-b-m .cg-b-v{color:var(--ink);text-shadow:0 0 22px #3ee6ff59}:root[data-cg-theme=neural] .cg-b-sq{background:var(--th-syn-a);border-radius:50%;box-shadow:0 0 8px #3ee6ff8c}:root[data-cg-theme=neural] .cg-b-m .cg-b-viz:has(.cg-b-sq){background:linear-gradient(var(--line), var(--line)) 0 50% / 100% 1px no-repeat}:root[data-cg-theme=neural] .cg-b-hm .cg-b-c{border-radius:50%}:root[data-cg-theme=neural] button.cg-b-hm-row.cg-b-on{box-shadow:inset 2px 0 0 var(--th-syn-a)}:root[data-cg-theme=neural] :is(.cg-b-bar,.cg-b-bar i,.cg-b-m .cg-b-line){border-radius:999px}:root[data-cg-theme=neural] .cg-b-gantt .cg-b-bar.cg-b-on{box-shadow:0 0 8px #5fd4ff99}:root[data-cg-theme=neural] .cg-b-gantt .cg-b-band{background:linear-gradient(#ff5ecf1f,#3ee6ff14)}:root[data-cg-theme=neural] .cg-b-era[aria-pressed=true]{background:color-mix(in srgb, var(--mw) 16%, var(--surface));border-color:var(--mw);color:var(--ink);box-shadow:0 0 0 1px var(--mw), 0 0 24px -6px #5fd4ff99}:root[data-cg-theme=neural] .cg-modal{--th-accent-grad:linear-gradient(90deg, var(--th-syn-a), var(--th-syn-b));--th-modal-border:transparent;--th-modal-bg:linear-gradient(var(--surface), var(--surface)) padding-box, linear-gradient(180deg, #3ee6ff8c, #ff5ecf40 30%, #ffffff0f) border-box;--th-modal-shadow:0 0 0 1px #0009, 0 40px 100px -24px #3ee6ff40;--th-stage:var(--th-neu-net) center / cover no-repeat, radial-gradient(60% 100% at 50% 0%, #3ee6ff1f, transparent 70%), #060918}:root[data-cg-theme=neural] .cg-modal-header:after{box-shadow:0 0 10px #3ee6ff80}:root[data-cg-theme=neural] .cg-section-label:before{background:var(--th-syn-a);border-radius:50%;width:6px;height:6px}:root[data-cg-theme=neural] .cg-section-label:after{background:linear-gradient(90deg, #3ee6ff99, var(--line))}:root[data-cg-theme=neural] .cg-tech-stack span{background:var(--surface2);border-color:#2c3775}:root[data-cg-theme=neural] .cg-ai-fab{color:var(--ink);background:linear-gradient(var(--surface2), var(--surface2)) padding-box, linear-gradient(90deg, var(--th-syn-a), var(--th-syn-b)) border-box;border:1px solid #0000}:root[data-cg-theme=neural] .cg-ai-dot{--ai:var(--th-syn-a);--mw:var(--th-syn-b)}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=neural] body:after{animation:4.8s ease-in-out infinite alternate thNeuPulse}:root[data-cg-theme=neural] .cg-b-reveal.cg-b-in.cg-b-profile{animation:var(--th-rv-name) var(--th-rv-dur) var(--th-rv-ease) backwards, thNeuWake 1.2s ease-out .4s backwards}}@supports (animation-timeline:scroll()){@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=neural] body:before{animation:linear both thNeuParaA;animation-timeline:scroll(root)}:root[data-cg-theme=neural] body:after{animation:4.8s ease-in-out infinite alternate thNeuPulse,linear both thNeuParaB;animation-timeline:auto,scroll(root)}}}@keyframes thNeuPulse{0%{opacity:.45}to{opacity:1}}@keyframes thNeuParaA{to{transform:translateY(-40px)}}@keyframes thNeuParaB{to{transform:translateY(-140px)}}@keyframes thNeuWake{0%{box-shadow:0 0 0 1px #3ee6ff99,0 0 60px -8px #3ee6ffb3}}
:root[data-cg-theme=flux]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f6f3fa;--surface:#fff;--surface2:#f1edf7;--ink:#150f1f;--sub:#4a4358;--faint:#625a71;--line:#e4dfee;--ai:#6a2cf0;--ai-t:#efe7ff;--mw:#1f5fd6;--mw-t:#e6eeff;--dev:#c23a0a;--dev-t:#ffe9df;--ok:#137a45;--ok-t:#e1f4e8;--warn-t:#fff0d6;--focus:#6a2cf0;--scrim:#1e0a3280;--th-flux-ink:linear-gradient(90deg, #c23a0a, #b01270 50%, #5b22d6);--th-flux-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E") 0 0 / 140px 140px;--th-bw:0px;--th-r-card:24px;--th-r-item:16px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:28px;--th-r-sheet:28px;--th-card-bg:var(--surface);--th-card-border:transparent;--th-card-border-hover:transparent;--th-card-shadow:0 1px 0 #fff9 inset, 0 30px 60px -30px #50147873;--th-card-shadow-hover:0 40px 70px -30px #78148c8c;--th-hover-transform:translateY(-4px);--th-bar-off:#948ca6;--th-h1-size:clamp(26px, 3vw, 42px);--th-h1-lh:1.1;--th-h1-ls:-.02em;--th-h1-mt:8px;--th-h2-size:22px;--th-h2-lh:1.3;--th-v-size:clamp(36px, 9vw, 56px);--th-head-bg:var(--surface);--th-backdrop:none;--th-btn-bg:color-mix(in srgb, var(--ink) 5%, transparent);--th-btn-border:transparent;--th-btn-bg-hover:color-mix(in srgb, var(--ink) 9%, transparent);--th-modal-dur:.6s;--th-modal-from:translateY(20px) scale(.94);--th-rv-name:thFluxIn;--th-rv-dur:.8s;--th-rv-ease:var(--th-spring);background:#ff3d9a}:root[data-cg-theme=flux] body:before{background:radial-gradient(closest-side at 30% 35%,#ff6a3d,#0000),radial-gradient(closest-side at 70% 30%,#ff3d9a,#0000),radial-gradient(closest-side at 60% 70%,#7b4dff,#0000),radial-gradient(closest-side at 25% 75%,#28c8ff,#0000),#ff3d9a;width:150%;height:150lvh;top:-25%;left:-25%}:root[data-cg-theme=flux] body:after{content:"";z-index:-1;pointer-events:none;opacity:.22;background:var(--th-flux-grain);mix-blend-mode:soft-light;width:100%;height:100lvh;position:fixed;top:0;left:0}:root[data-cg-theme=flux] .cg-b-card{--th-card-glow:radial-gradient(460px circle at var(--cg-mx,50%) var(--cg-my,0%), #ff3d9a0f, transparent 65%)}:root[data-cg-theme=flux] .cg-b-profile h1 em{background:var(--th-flux-ink);color:#0000;background-size:200% 100%;-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=flux] .cg-b-photo{background:linear-gradient(var(--surface2), var(--surface2)) padding-box, var(--th-flux-ink) border-box;box-shadow:none;border:2px solid #0000}:root[data-cg-theme=flux] .cg-b-card .label:before{content:"";vertical-align:0;background:var(--th-flux-ink);border-radius:50%;width:8px;height:8px;margin-right:8px;display:inline-block}:root[data-cg-theme=flux] .cg-b-s:after{background:linear-gradient(90deg, var(--cg-c), color-mix(in srgb, var(--cg-c) 40%, #ff3d9a));height:6px}:root[data-cg-theme=flux] .cg-b-m .cg-b-v{color:var(--ink);letter-spacing:-.03em}:root[data-cg-theme=flux] .cg-b-sq{background:var(--th-flux-ink);border-radius:4px}:root[data-cg-theme=flux] .cg-b-ph .cg-b-bar i{position:relative}:root[data-cg-theme=flux] .cg-b-ph .cg-b-bar i:after{content:"";border-radius:inherit;background:var(--th-flux-ink);position:absolute;inset:0}:root[data-cg-theme=flux] .cg-b-gantt .cg-b-bar.cg-b-on{background:var(--th-flux-ink)}:root[data-cg-theme=flux] .cg-b-era[aria-pressed=true]{background:var(--th-flux-ink);color:#fff;border-color:#0000}:root[data-cg-theme=flux] .cg-b-era[aria-pressed=true] :is(.cg-b-rg,.cg-b-d,.cg-b-n){opacity:1}:root[data-cg-theme=flux] .cg-b-ec .cg-b-im.cg-b-none{background:linear-gradient(var(--surface), var(--surface)) 0 100% / 100% 30px no-repeat, var(--th-flux-grain), radial-gradient(closest-side at 25% 40%, #ff6a3d, transparent), radial-gradient(closest-side at 75% 30%, #7b4dff, transparent), radial-gradient(closest-side at 60% 90%, #28c8ff, transparent), #ff3d9a}:root[data-cg-theme=flux] .cg-modal{--th-accent-grad:var(--th-flux-ink);--th-modal-border:transparent;--th-modal-shadow:0 50px 100px -30px #50147899;--th-stage:radial-gradient(closest-side at 30% 40%, #ff6a3d, transparent), radial-gradient(closest-side at 75% 60%, #7b4dff, transparent), #ff3d9a}:root[data-cg-theme=flux] .cg-modal-header:after{height:4px}:root[data-cg-theme=flux] .cg-modal-kicker:before{background:var(--th-flux-ink)}:root[data-cg-theme=flux] .cg-phase-grid span.on{background:var(--th-flux-ink);color:#fff;border-color:#0000}:root[data-cg-theme=flux] .cg-ai-fab{background:var(--th-flux-ink);color:#fff;box-shadow:0 16px 36px -10px #b012708c}:root[data-cg-theme=flux] .cg-ai-dot{background:#fff}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=flux] body:before{will-change:transform;animation:60s linear infinite thFluxMorph}:root[data-cg-theme=flux] .cg-b-profile h1 em{animation:thFluxFlow 1.8s var(--th-ease-out) .4s backwards}}@keyframes thFluxIn{0%{opacity:0;transform:scale(.96)}20%{opacity:1}to{opacity:1;transform:none}}@keyframes thFluxMorph{50%{transform:rotate(180deg)scale(1.15)}to{transform:rotate(360deg)}}@keyframes thFluxFlow{0%{background-position:100% 0}to{background-position:0 0}}
:root[data-cg-theme=minimal]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#fff;--surface:#f4f5f7;--surface2:#e7e8ec;--ink:#1b1c1f;--sub:#5e5e63;--faint:#666669;--line:#d1d2d7;--ai:#6e3bd8;--ai-t:#efe9fb;--mw:#0a64c8;--mw-t:#e5f0fd;--dev:#b64400;--dev-t:#fdeee3;--ok:#17733a;--ok-t:#e3f3e8;--warn:#8a5300;--warn-t:#fdf0d8;--focus:#0a64c8;--scrim:#00000059;--body:var(--th-sys);--disp:var(--th-sys);--th-hover-bg:#eceef1;--th-bw:0px;--th-r-card:28px;--th-r-item:18px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:28px;--th-r-sheet:28px;--th-card-bg:var(--surface);--th-card-border:transparent;--th-card-border-hover:transparent;--th-card-shadow:none;--th-card-shadow-hover:none;--th-card-glow:none;--th-hover-transform:none;--th-bar-off:#87878c;--th-h1-size:clamp(26px, 3vw, 42px);--th-h1-lh:1.12;--th-h1-ls:-.02em;--th-h1-mt:10px;--th-name-size:22px;--th-h2-size:21px;--th-h2-lh:1.3;--th-v-size:clamp(36px, 9vw, 56px);--th-head-bg:#fffc;--th-head-filter:blur(20px) saturate(1.8);--th-head-shadow:#00000014;--th-backdrop:none;--th-btn-bg:var(--surface2);--th-btn-border:transparent;--th-btn-bg-hover:#dcdde2;--th-modal-dur:.5s;--th-modal-from:translateY(12px) scale(.97);--th-rv-below:thRvRise}:root[data-cg-theme=minimal] .cg-b-card:not(.cg-b-nohover,.cg-b-metrics):hover{background:var(--th-hover-bg)}:root[data-cg-theme=minimal] .cg-b-card .label{color:var(--sub);letter-spacing:.02em}:root[data-cg-theme=minimal] .cg-b-more{background:var(--surface2);color:var(--ink);border-color:#0000}:root[data-cg-theme=minimal] .cg-b-card:hover .cg-b-more{border-color:#0000}:root[data-cg-theme=minimal] .cg-b-profile .cg-b-nm b,:root[data-cg-theme=minimal] .cg-b-profile h1{font-weight:700}:root[data-cg-theme=minimal] .cg-b-profile .cg-b-nm span{font-size:15px}:root[data-cg-theme=minimal] .cg-b-profile h1 em{background:linear-gradient(90deg, var(--mw), var(--ai));-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=minimal] .cg-b-photo{box-shadow:none}:root[data-cg-theme=minimal] .cg-b-card.cg-b-s{background:var(--cg-t)}:root[data-cg-theme=minimal] .cg-b-card.cg-b-s:not(.cg-b-nohover):hover{background:color-mix(in srgb, var(--ink) 3.5%, var(--cg-t))}:root[data-cg-theme=minimal] .cg-b-s:after{display:none}:root[data-cg-theme=minimal] .cg-b-s h2{color:var(--ink)}:root[data-cg-theme=minimal] .cg-b-s .cg-b-tags span{background:var(--ground)}:root[data-cg-theme=minimal] .cg-b-card.cg-b-metrics{background:0 0;gap:12px;overflow:visible}:root[data-cg-theme=minimal] .cg-b-m{background:var(--surface);border-width:0;border-radius:22px;transition:background-color .2s}:root[data-cg-theme=minimal] .cg-b-metrics:hover .cg-b-m{background:var(--th-hover-bg)}:root[data-cg-theme=minimal] .cg-b-m .cg-b-v{font-family:var(--th-sys);letter-spacing:-.03em;font-weight:700}:root[data-cg-theme=minimal] .cg-b-m .cg-b-line{border-radius:999px;height:4px}:root[data-cg-theme=minimal] .cg-b-sq{border-radius:4px}:root[data-cg-theme=minimal] .cg-b-hm .cg-b-c{border-radius:6px}:root[data-cg-theme=minimal] :is(.cg-b-era,.cg-b-ec,.cg-b-dm button,.cg-b-backbtn){border-color:#0000}:root[data-cg-theme=minimal] .cg-b-ec .cg-b-im.cg-b-none{background:var(--surface2)}:root[data-cg-theme=minimal] .cg-modal{--th-accent-grad:linear-gradient(90deg, var(--mw), var(--ai));--th-modal-bg:#fff;--th-modal-border:transparent;--th-modal-shadow:0 30px 90px #00000040;--th-stage:var(--surface)}:root[data-cg-theme=minimal] .cg-modal-header:after{height:0}:root[data-cg-theme=minimal] .cg-modal-kicker{color:var(--sub);font:600 12px/1 var(--th-sys);letter-spacing:.02em;background:0 0;padding:5px 0}:root[data-cg-theme=minimal] .cg-modal-kicker:before{display:none}:root[data-cg-theme=minimal] .cg-modal-body h3{letter-spacing:-.02em;font-size:28px;font-weight:700;line-height:1.25}:root[data-cg-theme=minimal] .cg-modal-body .cg-project-detail__name{font-size:32px}:root[data-cg-theme=minimal] .cg-phase-grid{background:var(--surface2);border-radius:10px;gap:2px;padding:3px}:root[data-cg-theme=minimal] .cg-phase-grid span:nth-child(n){color:var(--sub);border:0;border-radius:8px}:root[data-cg-theme=minimal] .cg-phase-grid span.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 3px #0000002e,0 0 0 .5px #0000000f}:root[data-cg-theme=minimal] .cg-tech-stack span{background:var(--surface2);border:0}:root[data-cg-theme=minimal] .cg-ext-link{background:0 0;border:0;padding:4px 0}:root[data-cg-theme=minimal] .cg-project-item{background:var(--surface);border-color:#0000}:root[data-cg-theme=minimal] .cg-ai-fab{background:var(--mw);color:#fff;box-shadow:0 8px 24px -8px #0a64c880}:root[data-cg-theme=minimal] .cg-ai-fab .cg-ai-dot{background:#fff}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=minimal] .cg-b-profile h1{transform-origin:0 0;animation:linear both thMinExit;animation-timeline:view();animation-range:exit}}}:root[data-cg-theme=minimal][data-cg-motion=off] .cg-b-profile h1{animation:none}@keyframes thMinExit{to{opacity:.75;transform:scale(.94)}}
:root[data-cg-theme=glass]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#f7f7fb;--surface:#fff;--surface2:#eceef6;--ink:#1b1c1f;--sub:#48484d;--faint:#56565c;--line:#ffffffb3;--ai:#5230c2;--ai-t:#ece6ff;--mw:#0052ad;--mw-t:#e3eefc;--dev:#8f3a00;--dev-t:#fbe9dc;--ok:#115e2f;--ok-t:#e2f2e7;--warn:#8a5300;--warn-t:#fdf0d8;--focus:#1b1c1f;--scrim:#14142838;--body:var(--th-sys);--disp:var(--th-sys);--th-glass:#fffc;--th-glass-blur:blur(24px) saturate(1.6);--th-rim:linear-gradient(160deg, #fffffff2, #ffffff40 40%, #fff9);--th-wall:linear-gradient(135deg, #7fd3ff 0%, #b69bff 38%, #ff9fd1 62%, #ffd18a 100%);--th-hair:#28284624;--th-tile-shadow:inset 0 1px 0 #ffffffe6, 0 16px 32px -20px #281e5a59;--th-bw:1px;--th-r-card:28px;--th-r-item:18px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:30px;--th-r-sheet:28px;--th-card-bg:var(--th-glass);--th-card-border:transparent;--th-card-border-hover:transparent;--th-card-shadow:inset 0 1px 0 #ffffffe6, inset 0 -1px 0 #ffffff4d, 0 20px 40px -20px #281e5a59;--th-card-shadow-hover:inset 0 1px 0 #ffffffe6, inset 0 -1px 0 #ffffff4d, 0 30px 50px -20px #281e5a73;--th-card-glow:none;--th-hover-transform:translateY(-2px);--th-bar-off:#6b6b73;--th-h1-ls:-.02em;--th-name-size:26px;--th-head-bg:#ffffffe0;--th-head-filter:none;--th-head-shadow:#281e5a1a;--th-backdrop:none;--th-btn-bg:#ffffffb3;--th-btn-border:#ffffffe6;--th-btn-bg-hover:#fff;--th-modal-dur:.6s;--th-modal-from:translateY(14px) scale(.95);--th-rv-name:thGlassIn;--th-rv-dur:.8s}:root[data-cg-theme=glass] body:before{background:radial-gradient(ellipse 60% 30% at 20% 30%, #ffffff8c, transparent 70%), radial-gradient(ellipse 50% 25% at 80% 70%, #ffffff73, transparent 70%), var(--th-wall)}:root[data-cg-theme=glass] .cg-b-card{background:linear-gradient(var(--th-glass), var(--th-glass)) padding-box, var(--th-rim) border-box;border-color:#0000}:root[data-cg-theme=glass] .cg-b-card:not(.cg-b-nohover,.cg-b-metrics):hover{background:linear-gradient(var(--th-glass), var(--th-glass)) padding-box, radial-gradient(260px circle at var(--cg-mx,50%) var(--cg-my,0%), #fff, transparent 70%) border-box, var(--th-rim) border-box}:root[data-cg-theme=glass] .cg-b-profile{box-shadow:inset 0 1px #fff,inset 0 -1px #fff6,0 30px 60px -24px #281e5a73}:root[data-cg-theme=glass] .cg-b-card .label{letter-spacing:.02em}:root[data-cg-theme=glass] .cg-b-photo{background:#ffffffb3;box-shadow:inset 0 1px #fff,0 0 0 1px #ffffffe6,0 10px 24px -12px #281e5a73}:root[data-cg-theme=glass] .cg-b-profile .cg-b-nm b,:root[data-cg-theme=glass] .cg-b-profile h1{font-weight:700}:root[data-cg-theme=glass] .cg-b-profile h1 em{background:linear-gradient(90deg,#2a5bd7,#7b3fe0 50%,#c2338f);-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=glass] .cg-b-s:after{background:linear-gradient(90deg, transparent, var(--cg-c), transparent);opacity:.8;height:2px}:root[data-cg-theme=glass] .cg-b-more{color:var(--ink);background:#ffffffb3;border-color:#ffffffe6}:root[data-cg-theme=glass] .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=glass] .cg-b-m{background:linear-gradient(var(--th-glass), var(--th-glass)) padding-box, var(--th-rim) border-box;box-shadow:var(--th-tile-shadow);border:1px solid #0000;border-radius:22px}:root[data-cg-theme=glass] .cg-b-metrics:hover .cg-b-m{box-shadow:inset 0 0 0 1px #fff, var(--th-tile-shadow)}:root[data-cg-theme=glass] .cg-b-m .cg-b-v{font-family:var(--th-sys);letter-spacing:-.03em;font-weight:700}:root[data-cg-theme=glass] :is(.cg-b-era,.cg-b-ec){background:#ffffffb3;border-color:#ffffffe6}:root[data-cg-theme=glass] .cg-b-era[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--ground)}:root[data-cg-theme=glass] .cg-b-ec .cg-b-im.cg-b-none{background:linear-gradient(#ffffff8c, #ffffff8c), var(--th-wall);color:var(--ink)}:root[data-cg-theme=glass] .cg-modal{--line:var(--th-hair);--th-modal-border:transparent;--th-modal-bg:linear-gradient(#fffffff0, #fffffff0) padding-box, var(--th-rim) border-box;--th-modal-shadow:inset 0 1px 0 #fff, 0 40px 100px -30px #281e5a80;--th-stage:var(--th-wall)}:root[data-cg-theme=glass] .cg-modal-header:after{height:0}:root[data-cg-theme=glass] .cg-modal-kicker{background:#ffffffb3;box-shadow:inset 0 0 0 1px #ffffffe6}:root[data-cg-theme=glass] .cg-modal-body h3{letter-spacing:-.02em;font-weight:700}:root[data-cg-theme=glass] .cg-phase-grid{background:#78788c24;border-radius:12px;gap:2px;padding:3px}:root[data-cg-theme=glass] .cg-phase-grid span:nth-child(n){color:var(--sub);border:0;border-radius:9px}:root[data-cg-theme=glass] .cg-phase-grid span.on{color:var(--ink);background:#fff;font-weight:700;box-shadow:0 1px 4px #281e5a33}:root[data-cg-theme=glass] :is(.cg-tech-stack span,.cg-project-item){background:#ffffffb3}:root[data-cg-theme=glass] .cg-tech-stack span{border-color:#ffffffe6}:root[data-cg-theme=glass] .cg-ai-fab,:root[data-cg-theme=glass] .cg-theme-switch .cg-theme-toggle{color:var(--ink);background:#ffffffe6;border:1px solid #ffffffe6;box-shadow:inset 0 1px #fff,0 10px 30px -10px #281e5a66}:root[data-cg-theme=glass] .cg-theme-switch{--line:var(--th-hair)}:root[data-cg-theme=glass] .cg-ai-side{--line:var(--th-hair);background:#fffffff5}@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){:root[data-cg-theme=glass] .cg-ai-fab,:root[data-cg-theme=glass] .cg-theme-switch .cg-theme-toggle{-webkit-backdrop-filter:blur(16px)saturate(1.6);backdrop-filter:blur(16px)saturate(1.6);background:#fff9}@media (min-width:1024px){:root[data-cg-theme=glass]{--th-glass:#ffffff8c}:root[data-cg-theme=glass] :is(.cg-b-card:not(.cg-b-metrics),.cg-b-m){-webkit-backdrop-filter:var(--th-glass-blur);backdrop-filter:var(--th-glass-blur)}:root[data-cg-theme=glass] .cg-modal{--th-modal-bg:linear-gradient(#ffffffb8, #ffffffb8) padding-box, var(--th-rim) border-box;-webkit-backdrop-filter:blur(30px)saturate(1.8);backdrop-filter:blur(30px)saturate(1.8)}}}@media (prefers-reduced-transparency:reduce){:root[data-cg-theme=glass]{--th-glass:#fff}:root[data-cg-theme=glass] :is(.cg-b-card,.cg-b-m,.cg-modal,.cg-ai-fab,.cg-theme-switch .cg-theme-toggle){-webkit-backdrop-filter:none;backdrop-filter:none}:root[data-cg-theme=glass] :is(.cg-ai-fab,.cg-ai-side,.cg-theme-switch .cg-theme-toggle){background:#fff}:root[data-cg-theme=glass] .cg-modal{--th-modal-bg:#fff}}@keyframes thGlassIn{0%{opacity:0;transform:scale(.96)}20%{opacity:1}to{opacity:1;transform:none}}
:root[data-cg-theme=titanium]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ground:#000;--surface:#111113;--surface2:#1c1c1f;--ink:#f4f5f7;--sub:#a2a2a7;--faint:#8f8f94;--line:#2c2c30;--ai:#bf9dff;--ai-t:#251d3d;--mw:#64b5ff;--mw-t:#0d2640;--dev:#ffad5c;--dev-t:#33230f;--ok:#4cd98a;--ok-t:#0f2c1f;--warn:#fc6;--warn-t:#3a2d10;--focus:#64b5ff;--scrim:#0009;--body:var(--th-sys);--disp:var(--th-sys);--th-metal:linear-gradient(180deg, #f4f5f7 0%, #c6c7cc 45%, #8f8f94 100%);--th-metal-accent:linear-gradient(90deg, #e8c49c, #b8a6ff 55%, #7fc6ff);--th-sheen:linear-gradient(100deg, transparent 40%, #fffffff2 50%, transparent 60%) 0 0 / 250% 100% no-repeat;--th-bw:1px;--th-r-card:26px;--th-r-item:16px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:28px;--th-r-sheet:26px;--th-card-bg:var(--surface);--th-card-border:#ffffff14;--th-card-border-hover:#ffffff2e;--th-card-shadow:inset 0 1px 0 #ffffff0f;--th-card-shadow-hover:inset 0 1px 0 #ffffff1a, 0 24px 50px -24px #000000e6;--th-hover-transform:translateY(-2px);--th-bar-off:#66666b;--th-h1-size:clamp(26px, 3vw, 42px);--th-h1-lh:1.1;--th-h1-ls:-.02em;--th-h1-mt:8px;--th-name-size:22px;--th-v-size:clamp(36px, 9vw, 56px);--th-head-bg:#111113b8;--th-head-filter:blur(20px) saturate(1.5);--th-head-shadow:#00000080;--th-backdrop:blur(6px);--th-btn-bg:var(--surface2);--th-btn-border:transparent;--th-btn-bg-hover:#2c2c30;--th-modal-from:translateY(16px) scale(.96);--th-rv-below:thRvRise}:root[data-cg-theme=titanium] body:before{background:radial-gradient(70% 40% at 50% -5%,#ffffff1a,#0000 70%)}:root[data-cg-theme=titanium] .cg-b-card{--th-card-glow:radial-gradient(420px circle at var(--cg-mx,50%) var(--cg-my,0%), #ffffff0f, transparent 65%)}:root[data-cg-theme=titanium] .cg-b-card .label{color:var(--sub);letter-spacing:.02em}:root[data-cg-theme=titanium] .cg-b-profile .cg-b-nm b{font-weight:700}:root[data-cg-theme=titanium] .cg-b-photo{box-shadow:0 0 0 1px #ffffff24,inset 0 1px #ffffff14}:root[data-cg-theme=titanium] .cg-b-profile h1{background:var(--th-metal);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:700}:root[data-cg-theme=titanium] .cg-b-profile h1 em{background:var(--th-sheen), var(--th-metal-accent);-webkit-background-clip:text;background-clip:text}:root[data-cg-theme=titanium] .cg-b-s:after{background:linear-gradient(90deg, transparent, var(--cg-c), transparent);height:1px}:root[data-cg-theme=titanium] .cg-b-more{background:var(--surface2);color:var(--ink);border-color:#0000}:root[data-cg-theme=titanium] .cg-b-card.cg-b-metrics{--th-card-glow:none;--th-card-shadow-hover:none;box-shadow:none;background:0 0;border-width:0;gap:12px;overflow:visible}:root[data-cg-theme=titanium] .cg-b-m{background:var(--surface);border:1px solid #ffffff14;border-radius:22px;transition:border-color .2s;box-shadow:inset 0 1px #ffffff0f}:root[data-cg-theme=titanium] .cg-b-metrics:hover .cg-b-m{border-color:#ffffff2e}:root[data-cg-theme=titanium] .cg-b-m .cg-b-v{font-family:var(--th-sys);letter-spacing:-.03em;background:var(--th-sheen), var(--th-metal);color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:700}:root[data-cg-theme=titanium] .cg-b-hm .cg-b-c{border-radius:5px}:root[data-cg-theme=titanium] .cg-b-gantt .cg-b-band{background:#ffffff0f}:root[data-cg-theme=titanium] .cg-b-ec .cg-b-im.cg-b-none{background:radial-gradient(ellipse 80% 90% at 50% 0%, #ffffff1a, transparent 70%), var(--surface2);color:var(--sub)}:root[data-cg-theme=titanium] .cg-modal{--th-accent-grad:var(--th-metal-accent);--th-modal-border:#ffffff1a;--th-modal-shadow:0 40px 100px #000c;--th-stage:radial-gradient(60% 100% at 50% 0%, #ffffff1a, transparent 70%), #000}:root[data-cg-theme=titanium] .cg-modal-header:after{height:1px}:root[data-cg-theme=titanium] .cg-modal-kicker{color:var(--sub);font:600 12px/1 var(--th-sys);letter-spacing:.02em;background:0 0;padding:5px 0}:root[data-cg-theme=titanium] .cg-modal-kicker:before{background:var(--th-metal-accent);box-shadow:none}:root[data-cg-theme=titanium] .cg-modal-body h3{letter-spacing:-.02em;background:var(--th-metal);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:30px;font-weight:700;line-height:1.25}:root[data-cg-theme=titanium] .cg-phase-grid{background:var(--surface2);border-radius:10px;gap:2px;padding:3px}:root[data-cg-theme=titanium] .cg-phase-grid span:nth-child(n){color:var(--sub);border:0;border-radius:8px}:root[data-cg-theme=titanium] .cg-phase-grid span.on{color:var(--ink);background:#3b3b3e;font-weight:700;box-shadow:0 1px 3px #0009}:root[data-cg-theme=titanium] .cg-tech-stack span{background:var(--surface2);border:0}:root[data-cg-theme=titanium] .cg-ai-fab{background:var(--ink);color:#000}:root[data-cg-theme=titanium] .cg-ai-fab .cg-ai-dot{--ai:#000;background:#000}:root[data-cg-theme=titanium] .cg-theme-switch .cg-theme-toggle{border-color:#ffffff24}@media (prefers-reduced-motion:no-preference){:root[data-cg-theme=titanium] .cg-b-profile.cg-b-in h1 em{animation:1.6s cubic-bezier(.45,0,.2,1) .5s backwards thTiSheen}:root[data-cg-theme=titanium] .cg-b-metrics.cg-b-in .cg-b-v{animation:1.6s cubic-bezier(.45,0,.2,1) .9s backwards thTiSheen}}@keyframes thTiSheen{0%{background-position:100% 0,0 0}to{background-position:0 0,0 0}}
:root[data-cg-theme=showroom]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--ground:#fff;--surface:#f4f5f7;--surface2:#e7e8ec;--ink:#1b1c1f;--sub:#5e5e63;--faint:#666669;--line:#d1d2d7;--ai:#6e3bd8;--ai-t:#efe9fb;--mw:#0a64c8;--mw-t:#e5f0fd;--dev:#b64400;--dev-t:#fdeee3;--ok:#17733a;--ok-t:#e3f3e8;--warn:#8a5300;--warn-t:#fdf0d8;--focus:#0a64c8;--scrim:#00000073;--body:var(--th-sys);--disp:var(--th-sys);--th-cta:#0a6fdc;--th-cta-hover:#0a60c0;--th-hover-bg:#eceef1;--th-item-bg:#f4f5f7;--th-bw:0px;--th-r-card:0px;--th-r-item:18px;--th-r-pill:999px;--th-r-chip:999px;--th-r-modal:18px;--th-r-sheet:18px;--th-card-bg:#f4f5f7;--th-card-border:transparent;--th-card-border-hover:transparent;--th-card-shadow:none;--th-card-shadow-hover:none;--th-card-glow:none;--th-hover-transform:none;--th-bar-off:#87878c;--th-h1-size:clamp(26px, 3vw, 42px);--th-h1-lh:1.1;--th-h1-ls:-.005em;--th-h1-mt:10px;--th-name-size:21px;--th-nm-lh:1.2;--th-h2-size:20px;--th-h2-lh:1.35;--th-v-size:clamp(36px, 9vw, 52px);--th-head-bg:#fffc;--th-head-filter:blur(20px) saturate(1.8);--th-head-shadow:#00000014;--th-backdrop:none;--th-btn-bg:transparent;--th-btn-border:#0a64c8;--th-btn-bg-hover:#e5f0fd;--th-modal-dur:.5s;--th-modal-from:translateY(12px) scale(.98);--th-rv-below:thRvRise}:root[data-cg-theme=showroom] :is(.cg-b-profile,.cg-b-skill,.cg-b-rel),:root[data-cg-theme=showroom] .cg-b-strengths>.cg-b-s:nth-child(2),:root[data-cg-theme=showroom] .cg-b-strengths>.cg-b-s:nth-child(3):nth-last-child(2),:root[data-cg-theme=showroom] .cg-b-tl:not(.cg-b-rel+.cg-b-tl){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:var(--ink);--ground:#1c1d20;--surface:#000;--surface2:#1e1e21;--ink:#f4f5f7;--sub:#a2a2a7;--faint:#8f8f94;--line:#333336;--ai:#b99cff;--ai-t:#251c3d;--mw:#2e9bff;--mw-t:#0e2742;--dev:#ffa95a;--dev-t:#33230f;--ok:#4cd98a;--ok-t:#0f2c1f;--warn:#fc6;--warn-t:#3a2d10;--th-hover-bg:#121214;--th-item-bg:#1c1d20;--th-bar-off:#6a6a6f}:root[data-cg-theme=showroom] .cg-b-card{background:var(--surface)}:root[data-cg-theme=showroom] .cg-b-card:not(.cg-b-nohover):hover{background:var(--th-hover-bg)}@media (min-width:601px){:root[data-cg-theme=showroom] .cg-b-wrap{max-width:1680px;padding-inline:12px}}:root[data-cg-theme=showroom] :is(.cg-b-wrap,.cg-b-strengths){gap:12px}:root[data-cg-theme=showroom] .cg-b-card .label{color:var(--sub);letter-spacing:.02em}:root[data-cg-theme=showroom] .cg-b-more{font:500 12.5px/1.4 var(--th-sys);color:#fff;background:var(--th-cta);border-color:var(--th-cta);padding:4px 14px;top:16px;right:18px}:root[data-cg-theme=showroom] .cg-b-card:hover .cg-b-more{color:#fff;background:var(--th-cta-hover);border-color:var(--th-cta-hover)}:root[data-cg-theme=showroom] .cg-b-profile{padding:32px 28px 30px}@media (max-width:600px){:root[data-cg-theme=showroom] .cg-b-profile{padding:24px 19px 22px}}:root[data-cg-theme=showroom] .cg-b-photo{box-shadow:none}:root[data-cg-theme=showroom] .cg-b-profile .label{color:var(--dev);font-size:12px}:root[data-cg-theme=showroom] .cg-b-profile .cg-b-nm b{font-weight:600}:root[data-cg-theme=showroom] .cg-b-profile .cg-b-nm span{font-size:15px}:root[data-cg-theme=showroom] .cg-b-profile h1{font-weight:600}:root[data-cg-theme=showroom] .cg-b-profile h1 em{color:inherit;background:0 0}:root[data-cg-theme=showroom] .cg-b-m{text-align:center;border-left-color:#0000;align-items:center}:root[data-cg-theme=showroom] .cg-b-m :is(.cg-b-viz,.cg-b-cap){align-self:stretch}:root[data-cg-theme=showroom] .cg-b-m .cg-b-viz:has(.cg-b-sq){justify-content:center}:root[data-cg-theme=showroom] .cg-b-m .cg-b-v{font-family:var(--th-sys);letter-spacing:-.02em;font-weight:600}:root[data-cg-theme=showroom] .cg-b-m :is(.cg-b-line,.cg-b-bar){border-radius:999px;height:6px}:root[data-cg-theme=showroom] .cg-b-sq{border-radius:50%}@media (max-width:900px){:root[data-cg-theme=showroom] .cg-b-m:nth-child(n+3){border-top-color:#0000}}:root[data-cg-theme=showroom] .cg-b-s:after{display:none}:root[data-cg-theme=showroom] .cg-b-s h2{color:var(--ink);letter-spacing:-.01em;font-weight:600}:root[data-cg-theme=showroom] .cg-b-head h3{font-weight:600}:root[data-cg-theme=showroom] :is(.cg-b-dm button,.cg-b-backbtn,.cg-b-era,.cg-b-ec),:root[data-cg-theme=showroom] .cg-b-ec:hover{border-color:#0000}:root[data-cg-theme=showroom] .cg-b-hm .cg-b-c{border-radius:4px}:root[data-cg-theme=showroom] .cg-b-gantt .cg-b-bar{border-radius:999px}:root[data-cg-theme=showroom] .cg-b-ec .cg-b-im.cg-b-none{background:var(--surface2)}:root[data-cg-theme=showroom] .cg-project-item{background:var(--th-item-bg);border-color:#0000}:root[data-cg-theme=showroom] .cg-project-item:hover{box-shadow:none;border-color:#0000}:root[data-cg-theme=showroom] .cg-modal{--th-accent:var(--mw);--th-modal-bg:#fff;--th-modal-border:transparent;--th-modal-shadow:0 20px 60px #00000047;--th-stage:#000}:root[data-cg-theme=showroom] .cg-modal-header:after{height:0}:root[data-cg-theme=showroom] .cg-modal-kicker{color:var(--sub);font:600 12px/1 var(--th-sys);letter-spacing:.02em;background:0 0;padding:5px 0}:root[data-cg-theme=showroom] .cg-modal-kicker:before{display:none}:root[data-cg-theme=showroom] :is(.cg-modal-back,.cg-modal-close){color:var(--mw);font-weight:500}:root[data-cg-theme=showroom] .cg-modal-body h3{letter-spacing:-.01em;font-size:28px;font-weight:600;line-height:1.2}:root[data-cg-theme=showroom] .cg-modal-body .cg-project-detail__name{font-size:30px}:root[data-cg-theme=showroom] .cg-phase-grid{gap:6px}:root[data-cg-theme=showroom] .cg-phase-grid span:nth-child(n){background:var(--surface2);color:var(--sub);border:0;border-radius:999px;padding:8px 0}:root[data-cg-theme=showroom] .cg-phase-grid span.on{background:var(--ink);color:#fff;font-weight:700}:root[data-cg-theme=showroom] .cg-tech-stack span{background:var(--surface2);border:0}:root[data-cg-theme=showroom] .cg-ext-link{background:0 0;border:0;padding:4px 0;font-weight:500}:root[data-cg-theme=showroom] .cg-ext-link:after{content:"";border-top:1.5px solid;border-right:1.5px solid;width:6px;height:6px;margin-left:2px;transform:rotate(45deg)}:root[data-cg-theme=showroom] .cg-ai-fab{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line), 0 8px 24px #0000002e;background:#f4f5f7}
