@property --tw-animation-delay{syntax:"*";inherits:false;initial-value:0s}@property --tw-animation-direction{syntax:"*";inherits:false;initial-value:normal}@property --tw-animation-duration{syntax:"*";inherits:false}@property --tw-animation-fill-mode{syntax:"*";inherits:false;initial-value:none}@property --tw-animation-iteration-count{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-enter-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-enter-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-blur{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-opacity{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-rotate{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-scale{syntax:"*";inherits:false;initial-value:1}@property --tw-exit-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-exit-translate-y{syntax:"*";inherits:false;initial-value:0}@theme inline{--animation-delay-0: 0s; --animation-delay-75: 75ms; --animation-delay-100: .1s; --animation-delay-150: .15s; --animation-delay-200: .2s; --animation-delay-300: .3s; --animation-delay-500: .5s; --animation-delay-700: .7s; --animation-delay-1000: 1s; --animation-repeat-0: 0; --animation-repeat-1: 1; --animation-repeat-infinite: infinite; --animation-direction-normal: normal; --animation-direction-reverse: reverse; --animation-direction-alternate: alternate; --animation-direction-alternate-reverse: alternate-reverse; --animation-fill-mode-none: none; --animation-fill-mode-forwards: forwards; --animation-fill-mode-backwards: backwards; --animation-fill-mode-both: both; --percentage-0: 0; --percentage-5: .05; --percentage-10: .1; --percentage-15: .15; --percentage-20: .2; --percentage-25: .25; --percentage-30: .3; --percentage-35: .35; --percentage-40: .4; --percentage-45: .45; --percentage-50: .5; --percentage-55: .55; --percentage-60: .6; --percentage-65: .65; --percentage-70: .7; --percentage-75: .75; --percentage-80: .8; --percentage-85: .85; --percentage-90: .9; --percentage-95: .95; --percentage-100: 1; --percentage-translate-full: 1; --animate-in: enter var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-out: exit var(--tw-animation-duration,var(--tw-duration,.15s))var(--tw-ease,ease)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); @keyframes enter { from { opacity: var(--tw-enter-opacity,1); transform: translate3d(var(--tw-enter-translate-x,0),var(--tw-enter-translate-y,0),0)scale3d(var(--tw-enter-scale,1),var(--tw-enter-scale,1),var(--tw-enter-scale,1))rotate(var(--tw-enter-rotate,0)); filter: blur(var(--tw-enter-blur,0)); }}@keyframes exit { to { opacity: var(--tw-exit-opacity,1); transform: translate3d(var(--tw-exit-translate-x,0),var(--tw-exit-translate-y,0),0)scale3d(var(--tw-exit-scale,1),var(--tw-exit-scale,1),var(--tw-exit-scale,1))rotate(var(--tw-exit-rotate,0)); filter: blur(var(--tw-exit-blur,0)); }}--animate-accordion-down: accordion-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-accordion-up: accordion-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-collapsible-down: collapsible-down var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); --animate-collapsible-up: collapsible-up var(--tw-animation-duration,var(--tw-duration,.2s))var(--tw-ease,ease-out)var(--tw-animation-delay,0s)var(--tw-animation-iteration-count,1)var(--tw-animation-direction,normal)var(--tw-animation-fill-mode,none); @keyframes accordion-down { from { height: 0; }to { height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto))))); }}@keyframes accordion-up { from { height: var(--radix-accordion-content-height,var(--bits-accordion-content-height,var(--reka-accordion-content-height,var(--kb-accordion-content-height,var(--ngp-accordion-content-height,auto))))); }to { height: 0; }}@keyframes collapsible-down { from { height: 0; }to { height: var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto)))); }}@keyframes collapsible-up { from { height: var(--radix-collapsible-content-height,var(--bits-collapsible-content-height,var(--reka-collapsible-content-height,var(--kb-collapsible-content-height,auto)))); }to { height: 0; }}--animate-caret-blink: caret-blink 1.25s ease-out infinite; @keyframes caret-blink { 0%,70%,100% { opacity: 1; }20%,50% { opacity: 0; }}}@utility animation-duration-*{--tw-animation-duration: calc(--value(number)*1ms); --tw-animation-duration: --value(--animation-duration-*,[duration],"initial",[*]); animation-duration: calc(--value(number)*1ms); animation-duration: --value(--animation-duration-*,[duration],"initial",[*]);}@utility delay-*{animation-delay: calc(--value(number)*1ms); animation-delay: --value(--animation-delay-*,[duration],"initial",[*]); --tw-animation-delay: calc(--value(number)*1ms); --tw-animation-delay: --value(--animation-delay-*,[duration],"initial",[*]);}@utility repeat-*{animation-iteration-count: --value(--animation-repeat-*,number,"initial",[*]); --tw-animation-iteration-count: --value(--animation-repeat-*,number,"initial",[*]);}@utility direction-*{animation-direction: --value(--animation-direction-*,"initial",[*]); --tw-animation-direction: --value(--animation-direction-*,"initial",[*]);}@utility fill-mode-*{animation-fill-mode: --value(--animation-fill-mode-*,"initial",[*]); --tw-animation-fill-mode: --value(--animation-fill-mode-*,"initial",[*]);}@utility running{animation-play-state: running;}@utility paused{animation-play-state: paused;}@utility play-state-*{animation-play-state: --value("initial",[*]);}@utility blur-in{--tw-enter-blur: 20px;}@utility blur-in-*{--tw-enter-blur: calc(--value(number)*1px); --tw-enter-blur: --value(--blur-*,[*]);}@utility blur-out{--tw-exit-blur: 20px;}@utility blur-out-*{--tw-exit-blur: calc(--value(number)*1px); --tw-exit-blur: --value(--blur-*,[*]);}@utility fade-in{--tw-enter-opacity: 0;}@utility fade-in-*{--tw-enter-opacity: calc(--value(number)/100); --tw-enter-opacity: --value(--percentage-*,[*]);}@utility fade-out{--tw-exit-opacity: 0;}@utility fade-out-*{--tw-exit-opacity: calc(--value(number)/100); --tw-exit-opacity: --value(--percentage-*,[*]);}@utility zoom-in{--tw-enter-scale: 0;}@utility zoom-in-*{--tw-enter-scale: calc(--value(number)*1%); --tw-enter-scale: calc(--value(ratio)); --tw-enter-scale: --value(--percentage-*,[*]);}@utility -zoom-in-*{--tw-enter-scale: calc(--value(number)*-1%); --tw-enter-scale: calc(--value(ratio)*-1); --tw-enter-scale: --value(--percentage-*,[*]);}@utility zoom-out{--tw-exit-scale: 0;}@utility zoom-out-*{--tw-exit-scale: calc(--value(number)*1%); --tw-exit-scale: calc(--value(ratio)); --tw-exit-scale: --value(--percentage-*,[*]);}@utility -zoom-out-*{--tw-exit-scale: calc(--value(number)*-1%); --tw-exit-scale: calc(--value(ratio)*-1); --tw-exit-scale: --value(--percentage-*,[*]);}@utility spin-in{--tw-enter-rotate: 30deg;}@utility spin-in-*{--tw-enter-rotate: calc(--value(number)*1deg); --tw-enter-rotate: calc(--value(ratio)*360deg); --tw-enter-rotate: --value(--rotate-*,[*]);}@utility -spin-in{--tw-enter-rotate: -30deg;}@utility -spin-in-*{--tw-enter-rotate: calc(--value(number)*-1deg); --tw-enter-rotate: calc(--value(ratio)*-360deg); --tw-enter-rotate: --value(--rotate-*,[*]);}@utility spin-out{--tw-exit-rotate: 30deg;}@utility spin-out-*{--tw-exit-rotate: calc(--value(number)*1deg); --tw-exit-rotate: calc(--value(ratio)*360deg); --tw-exit-rotate: --value(--rotate-*,[*]);}@utility -spin-out{--tw-exit-rotate: -30deg;}@utility -spin-out-*{--tw-exit-rotate: calc(--value(number)*-1deg); --tw-exit-rotate: calc(--value(ratio)*-360deg); --tw-exit-rotate: --value(--rotate-*,[*]);}@utility slide-in-from-top{--tw-enter-translate-y: -100%;}@utility slide-in-from-top-*{--tw-enter-translate-y: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-y: calc(--value(ratio)*-100%); --tw-enter-translate-y: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-in-from-bottom{--tw-enter-translate-y: 100%;}@utility slide-in-from-bottom-*{--tw-enter-translate-y: calc(--value(integer)*var(--spacing)); --tw-enter-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-y: calc(--value(ratio)*100%); --tw-enter-translate-y: --value(--translate-*,[percentage],[length]);}@utility slide-in-from-left{--tw-enter-translate-x: -100%;}@utility slide-in-from-left-*{--tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-in-from-right{--tw-enter-translate-x: 100%;}@utility slide-in-from-right-*{--tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]);}@utility slide-in-from-start{&:dir(ltr){ --tw-enter-translate-x: -100%; }&:dir(rtl){ --tw-enter-translate-x: 100%; }}@utility slide-in-from-start-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]); }}@utility slide-in-from-end{&:dir(ltr){ --tw-enter-translate-x: 100%; }&:dir(rtl){ --tw-enter-translate-x: -100%; }}@utility slide-in-from-end-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-enter-translate-x: calc(--value(ratio)*100%); --tw-enter-translate-x: --value(--translate-*,[percentage],[length]); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-enter-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-enter-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-enter-translate-x: calc(--value(ratio)*-100%); --tw-enter-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }}@utility slide-out-to-top{--tw-exit-translate-y: -100%;}@utility slide-out-to-top-*{--tw-exit-translate-y: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-y: calc(--value(ratio)*-100%); --tw-exit-translate-y: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-out-to-bottom{--tw-exit-translate-y: 100%;}@utility slide-out-to-bottom-*{--tw-exit-translate-y: calc(--value(integer)*var(--spacing)); --tw-exit-translate-y: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-y: calc(--value(ratio)*100%); --tw-exit-translate-y: --value(--translate-*,[percentage],[length]);}@utility slide-out-to-left{--tw-exit-translate-x: -100%;}@utility slide-out-to-left-*{--tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1);}@utility slide-out-to-right{--tw-exit-translate-x: 100%;}@utility slide-out-to-right-*{--tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]);}@utility slide-out-to-start{&:dir(ltr){ --tw-exit-translate-x: -100%; }&:dir(rtl){ --tw-exit-translate-x: 100%; }}@utility slide-out-to-start-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]); }}@utility slide-out-to-end{&:dir(ltr){ --tw-exit-translate-x: 100%; }&:dir(rtl){ --tw-exit-translate-x: -100%; }}@utility slide-out-to-end-*{&:where(:dir(ltr),[dir="ltr"],[dir="ltr"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*100%); --tw-exit-translate-x: calc(--value(ratio)*100%); --tw-exit-translate-x: --value(--translate-*,[percentage],[length]); }&:where(:dir(rtl),[dir="rtl"],[dir="rtl"]*){ --tw-exit-translate-x: calc(--value(integer)*var(--spacing)*-1); --tw-exit-translate-x: calc(--value(--percentage-*,--percentage-translate-*)*-100%); --tw-exit-translate-x: calc(--value(ratio)*-100%); --tw-exit-translate-x: calc(--value(--translate-*,[percentage],[length])*-1); }}@theme inline{@keyframes accordion-down { from { height: 0; } to { height: var(--radix-accordion-content-height,var(--accordion-panel-height,auto)); } } @keyframes accordion-up { from { height: var(--radix-accordion-content-height,var(--accordion-panel-height,auto)); } to { height: 0; } }}@custom-variant data-open{&:where([data-state="open"]), &:where([data-open]:not([data-open="false"])) { @slot; }}@custom-variant data-closed{&:where([data-state="closed"]), &:where([data-closed]:not([data-closed="false"])) { @slot; }}@custom-variant data-checked{&:where([data-state="checked"]), &:where([data-checked]:not([data-checked="false"])) { @slot; }}@custom-variant data-unchecked{&:where([data-state="unchecked"]), &:where([data-unchecked]:not([data-unchecked="false"])) { @slot; }}@custom-variant data-selected{&:where([data-selected="true"]) { @slot; }}@custom-variant data-disabled{&:where([data-disabled="true"]), &:where([data-disabled]:not([data-disabled="false"])) { @slot; }}@custom-variant data-active{&:where([data-state="active"]), &:where([data-active]:not([data-active="false"])) { @slot; }}@custom-variant data-horizontal{&:where([data-orientation="horizontal"]) { @slot; }}@custom-variant data-vertical{&:where([data-orientation="vertical"]) { @slot; }}@utility no-scrollbar{-ms-overflow-style: none; scrollbar-width: none; &::-webkit-scrollbar { display: none; }}@property --scroll-fade-t{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-b{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-s{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-e{syntax:"<length-percentage>";inherits:false;initial-value:0}@property --scroll-fade-mask{syntax:"*";inherits:false}@theme inline{@keyframes scroll-fade-reveal-t { from { --scroll-fade-t: 0px; } to { --scroll-fade-t: var(--_scroll-fade-size-t,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); } } @keyframes scroll-fade-reveal-b { from { --scroll-fade-b: var(--_scroll-fade-size-b,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); } to { --scroll-fade-b: 0px; } } @keyframes scroll-fade-reveal-s { from { --scroll-fade-s: 0px; } to { --scroll-fade-s: var(--_scroll-fade-size-s,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); } } @keyframes scroll-fade-reveal-e { from { --scroll-fade-e: var(--_scroll-fade-size-e,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); } to { --scroll-fade-e: 0px; } }}@utility scroll-fade{--_scroll-fade-size-t: var(--scroll-fade-t-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --_scroll-fade-size-b: var(--scroll-fade-b-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-block: linear-gradient(to bottom, transparent 0, #000 var(--scroll-fade-t,0px), #000 calc(100% - var(--scroll-fade-b,0px)), transparent 100%); -webkit-mask-image: var(--scroll-fade-mask,var(--scroll-fade-block)); mask-image: var(--scroll-fade-mask,var(--scroll-fade-block)); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-t 1ms ease-in-out, scroll-fade-reveal-b 1ms ease-in-out; animation-timeline: scroll(self y), scroll(self y); animation-range: 0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)), calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%; animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-t: var(--_scroll-fade-size-t); --scroll-fade-b: var(--_scroll-fade-size-b); }}@utility scroll-fade-y{--_scroll-fade-size-t: var(--scroll-fade-t-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --_scroll-fade-size-b: var(--scroll-fade-b-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-block: linear-gradient(to bottom, transparent 0, #000 var(--scroll-fade-t,0px), #000 calc(100% - var(--scroll-fade-b,0px)), transparent 100%); -webkit-mask-image: var(--scroll-fade-mask,var(--scroll-fade-block)); mask-image: var(--scroll-fade-mask,var(--scroll-fade-block)); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-t 1ms ease-in-out, scroll-fade-reveal-b 1ms ease-in-out; animation-timeline: scroll(self y), scroll(self y); animation-range: 0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)), calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%; animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-t: var(--_scroll-fade-size-t); --scroll-fade-b: var(--_scroll-fade-size-b); }}@utility scroll-fade-x{--_scroll-fade-size-s: var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --_scroll-fade-size-e: var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-inline: linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%); &:where([dir="rtl"], [dir="rtl"] *) { --scroll-fade-inline: linear-gradient(to left, transparent 0, #000 var(--scroll-fade-s,0px), #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%); } -webkit-mask-image: var(--scroll-fade-mask,var(--scroll-fade-inline)); mask-image: var(--scroll-fade-mask,var(--scroll-fade-inline)); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-s 1ms ease-in-out, scroll-fade-reveal-e 1ms ease-in-out; animation-timeline: scroll(self inline), scroll(self inline); animation-range: 0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)), calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%; animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-s: var(--_scroll-fade-size-s); --scroll-fade-e: var(--_scroll-fade-size-e); }}@utility scroll-fade-t{--_scroll-fade-size-t: var(--scroll-fade-t-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-mask: linear-gradient(to bottom, transparent 0, #000 var(--scroll-fade-t,0px), #000 100%); -webkit-mask-image: var(--scroll-fade-mask); mask-image: var(--scroll-fade-mask); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-t 1ms ease-in-out; animation-timeline: scroll(self y); animation-range: 0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)); animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-t: var(--_scroll-fade-size-t); }}@utility scroll-fade-b{--_scroll-fade-size-b: var(--scroll-fade-b-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-mask: linear-gradient(to bottom, #000 0, #000 calc(100% - var(--scroll-fade-b,0px)), transparent 100%); -webkit-mask-image: var(--scroll-fade-mask); mask-image: var(--scroll-fade-mask); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-b 1ms ease-in-out; animation-timeline: scroll(self y); animation-range: calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%; animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-b: var(--_scroll-fade-size-b); }}@utility scroll-fade-l{--_scroll-fade-size-s: var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-mask: linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 100%); -webkit-mask-image: var(--scroll-fade-mask); mask-image: var(--scroll-fade-mask); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-s 1ms ease-in-out; animation-timeline: scroll(self x); animation-range: 0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)); animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-s: var(--_scroll-fade-size-s); }}@utility scroll-fade-r{--_scroll-fade-size-e: var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-mask: linear-gradient(to right, #000 0, #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%); -webkit-mask-image: var(--scroll-fade-mask); mask-image: var(--scroll-fade-mask); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-e 1ms ease-in-out; animation-timeline: scroll(self x); animation-range: calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%; animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-e: var(--_scroll-fade-size-e); }}@utility scroll-fade-s{--_scroll-fade-size-s: var(--scroll-fade-s-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-mask: linear-gradient(to right, transparent 0, #000 var(--scroll-fade-s,0px), #000 100%); &:where([dir="rtl"], [dir="rtl"] *) { --scroll-fade-mask: linear-gradient(to left, transparent 0, #000 var(--scroll-fade-s,0px), #000 100%); } -webkit-mask-image: var(--scroll-fade-mask); mask-image: var(--scroll-fade-mask); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-s 1ms ease-in-out; animation-timeline: scroll(self inline); animation-range: 0 var(--scroll-fade-reveal,calc(var(--spacing) * 24)); animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-s: var(--_scroll-fade-size-s); }}@utility scroll-fade-e{--_scroll-fade-size-e: var(--scroll-fade-e-size,var(--scroll-fade-size,min(12%, calc(var(--spacing) * 10)))); --scroll-fade-mask: linear-gradient(to right, #000 0, #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%); &:where([dir="rtl"], [dir="rtl"] *) { --scroll-fade-mask: linear-gradient(to left, #000 0, #000 calc(100% - var(--scroll-fade-e,0px)), transparent 100%); } -webkit-mask-image: var(--scroll-fade-mask); mask-image: var(--scroll-fade-mask); -webkit-mask-composite: source-in; mask-composite: intersect; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat; @supports (animation-timeline: scroll()) { animation: scroll-fade-reveal-e 1ms ease-in-out; animation-timeline: scroll(self inline); animation-range: calc(100% - var(--scroll-fade-reveal,calc(var(--spacing) * 24))) 100%; animation-fill-mode: both; } @supports not (animation-timeline: scroll()) { --scroll-fade-e: var(--_scroll-fade-size-e); }}@utility scroll-fade-*{--scroll-fade-size: calc(var(--spacing) * --value(integer)); --scroll-fade-size: --value([length], [percentage]);}@utility scroll-fade-t-*{--scroll-fade-t-size: calc(var(--spacing) * --value(integer)); --scroll-fade-t-size: --value([length], [percentage]);}@utility scroll-fade-b-*{--scroll-fade-b-size: calc(var(--spacing) * --value(integer)); --scroll-fade-b-size: --value([length], [percentage]);}@utility scroll-fade-s-*{--scroll-fade-s-size: calc(var(--spacing) * --value(integer)); --scroll-fade-s-size: --value([length], [percentage]);}@utility scroll-fade-e-*{--scroll-fade-e-size: calc(var(--spacing) * --value(integer)); --scroll-fade-e-size: --value([length], [percentage]);}@utility scroll-fade-none{--scroll-fade-mask: none;}@property --shimmer-angle{syntax:"<angle>";inherits:true;initial-value:20deg}@property --shimmer-image{syntax:"*";inherits:false}@property --shimmer-text-fill{syntax:"*";inherits:false}@theme inline{@keyframes tw-shimmer { from { background-position: 100% 0; } to { background-position: 0 0; } }}@utility shimmer{--_spread: var(--shimmer-spread,calc(3ch + 40px)); --_base: currentColor; --_highlight: var(--shimmer-color,oklch(from currentColor l c h / calc(alpha* .2))); background-image: var(--shimmer-image,linear-gradient(calc(90deg + var(--shimmer-angle)), var(--_base) calc(50% - var(--_spread)), color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% - var(--_spread) * .5), var(--_highlight) 50%, color-mix(in oklch, var(--_highlight), var(--_base) 50%) calc(50% + var(--_spread) * .5), var(--_base) calc(50% + var(--_spread)))); background-repeat: no-repeat; background-size: calc(200% + var(--_spread) * 2) 100%; background-position: 0 0; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: var(--shimmer-text-fill,transparent); animation: tw-shimmer var(--shimmer-duration,2s) linear infinite; @variant dark { --_highlight: var(--shimmer-color,oklch(from currentColor max(.8, calc(l + .4)) c h / calc(alpha + .4))); } &:where([dir="rtl"], [dir="rtl"] *) { animation-direction: reverse; }}@utility shimmer-once{animation-iteration-count: 1;}@utility shimmer-reverse{animation-direction: reverse;}@utility shimmer-none{--shimmer-image: none; --shimmer-text-fill: currentColor;}@utility shimmer-color-*{--shimmer-color: --value(--color, [color]); --shimmer-color: color-mix(in oklch, --value(--color, [color]) calc(--modifier(integer) * 1%), transparent);}@utility shimmer-duration-*{--shimmer-duration: calc(--value(integer) * 1ms);}@utility shimmer-spread-*{--shimmer-spread: calc(var(--spacing) * --value(integer)); --shimmer-spread: --value([length], [percentage]);}@utility shimmer-angle-*{--shimmer-angle: calc(--value(integer) * 1deg);}@media (prefers-reduced-motion:reduce){.shimmer{-webkit-text-fill-color:currentColor;background-image:none;animation:none}}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-ext-wght-normal-DjL33-gN.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-cyrillic-wght-normal-BEAKL7Jp.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-vietnamese-wght-normal-6IgcOCM7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-ext-wght-normal-DC-KSUi6.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,:before,:after,::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }*,:before,:after{box-sizing:border-box;border:0 solid #e5e7eb}:before,:after{--tw-content:""}html,:host{-webkit-text-size-adjust:100%;tab-size:4;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;line-height:1.5}body{line-height:inherit;margin:0}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-feature-settings:normal;font-variation-settings:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-feature-settings:inherit;font-variation-settings:inherit;font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:#0000;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{margin:0;padding:0;list-style:none}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder{opacity:1;color:#9ca3af}textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.theme{--font-heading:var(--font-sans);--font-sans:"Geist Variable", sans-serif}:root{--background:oklch(14.5% 0 0);--foreground:oklch(98.5% 0 0);--card:oklch(20.5% 0 0);--card-foreground:oklch(98.5% 0 0);--popover:oklch(20.5% 0 0);--popover-foreground:oklch(98.5% 0 0);--primary:oklch(92.2% 0 0);--primary-foreground:oklch(20.5% 0 0);--secondary:oklch(26.9% 0 0);--secondary-foreground:oklch(98.5% 0 0);--muted:oklch(26.9% 0 0);--muted-foreground:oklch(70.8% 0 0);--accent:oklch(26.9% 0 0);--accent-foreground:oklch(98.5% 0 0);--destructive:oklch(70.4% .191 22.216);--border:oklch(100% 0 0/.1);--input:oklch(100% 0 0/.15);--ring:oklch(55.6% 0 0);--chart-1:oklch(87% 0 0);--chart-2:oklch(55.6% 0 0);--chart-3:oklch(43.9% 0 0);--chart-4:oklch(37.1% 0 0);--chart-5:oklch(26.9% 0 0);--radius:.625rem;--sidebar:oklch(20.5% 0 0);--sidebar-foreground:oklch(98.5% 0 0);--sidebar-primary:oklch(48.8% .243 264.376);--sidebar-primary-foreground:oklch(98.5% 0 0);--sidebar-accent:oklch(26.9% 0 0);--sidebar-accent-foreground:oklch(98.5% 0 0);--sidebar-border:oklch(100% 0 0/.1);--sidebar-ring:oklch(55.6% 0 0)}*{border-color:var(--border)}body{background-color:var(--background);color:var(--foreground)}html{font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.left-0{left:0}.right-0{right:0}.right-2{right:.5rem}.top-0{top:0}.z-50{z-index:50}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-auto{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-px{height:1px}.w-56{width:14rem}.min-w-32{min-width:8rem}.min-w-\[96px\]{min-width:96px}.max-w-7xl{max-width:80rem}.flex-1{flex:1}.shrink-0{flex-shrink:0}.transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.select-none{-webkit-user-select:none;user-select:none}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2\.5{gap:.625rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.whitespace-nowrap{white-space:nowrap}.rounded-\[min\(var\(--radius-md\)\,10px\)\]{border-radius:min(var(--radius-md), 10px)}.rounded-\[min\(var\(--radius-md\)\,12px\)\]{border-radius:min(var(--radius-md), 12px)}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.border{border-width:1px}.border-b{border-bottom-width:1px}.border-border{border-color:var(--border)}.border-transparent{border-color:#0000}.bg-background{background-color:var(--background)}.bg-border{background-color:var(--border)}.bg-popover{background-color:var(--popover)}.bg-primary{background-color:var(--primary)}.bg-secondary{background-color:var(--secondary)}.bg-clip-padding{background-clip:padding-box}.p-1{padding:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-7{padding-top:1.75rem;padding-bottom:1.75rem}.pl-1\.5{padding-left:.375rem}.pr-8{padding-right:2rem}.text-\[0\.8rem\]{font-size:.8rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.tracking-widest{letter-spacing:.1em}.text-accent{color:var(--accent)}.text-destructive{color:var(--destructive)}.text-muted-foreground{color:var(--muted-foreground)}.text-popover-foreground{color:var(--popover-foreground)}.text-primary{color:var(--primary)}.text-primary-foreground{color:var(--primary-foreground)}.text-secondary-foreground{color:var(--secondary-foreground)}.underline-offset-4{text-underline-offset:4px}.shadow-lg{--tw-shadow:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000), var(--tw-ring-shadow,0 0 #0000), var(--tw-shadow)}.outline-none{outline-offset:2px;outline:2px solid #0000}.outline{outline-style:solid}.ring-1{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow,0 0 #0000)}.drop-shadow{--tw-drop-shadow:drop-shadow(0 1px 2px #0000001a) drop-shadow(0 1px 1px #0000000f);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.grayscale{--tw-grayscale:grayscale(100%);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-all{transition-property:all;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-100{transition-duration:.1s}@keyframes enter{0%{opacity:var(--tw-enter-opacity,1);transform:translate3d(var(--tw-enter-translate-x,0), var(--tw-enter-translate-y,0), 0) scale3d(var(--tw-enter-scale,1), var(--tw-enter-scale,1), var(--tw-enter-scale,1)) rotate(var(--tw-enter-rotate,0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity,1);transform:translate3d(var(--tw-exit-translate-x,0), var(--tw-exit-translate-y,0), 0) scale3d(var(--tw-exit-scale,1), var(--tw-exit-scale,1), var(--tw-exit-scale,1)) rotate(var(--tw-exit-rotate,0))}}.fade-in{--tw-enter-opacity:0}.duration-100{animation-duration:.1s}:root{--text:#6b6375;--text-h:#08060d;--bg:#fff;--border:#e5e4e7;--code-bg:#f4f3ec;--accent:#aa3bff;--accent-bg:#aa3bff1a;--accent-border:#aa3bff80;--social-bg:#f4f3ec80;--shadow:#0000001a 0 10px 15px -3px, #0000000d 0 4px 6px -2px;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--heading:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, Consolas, monospace;font:18px/145% var(--sans);letter-spacing:.18px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}@media (width<=1024px){:root{font-size:16px}}@media (prefers-color-scheme:dark){:root{--text:#9ca3af;--text-h:#f3f4f6;--bg:#16171d;--border:#2e303a;--code-bg:#1f2028;--accent:#c084fc;--accent-bg:#c084fc26;--accent-border:#c084fc80;--social-bg:#2f303a80;--shadow:#0006 0 10px 15px -3px, #00000040 0 4px 6px -2px}#social .button-icon{filter:invert()brightness(2)}}#root{text-align:left;box-sizing:border-box;flex-direction:column;width:100%;max-width:100%;min-height:100svh;margin:0;display:flex;overflow-x:hidden}body{margin:0}h1,h2{font-family:var(--heading);color:var(--text-h);font-weight:500}h1{letter-spacing:-1.68px;margin:32px 0;font-size:56px}@media (width<=1024px){h1{margin:20px 0;font-size:36px}}h2{letter-spacing:-.24px;margin:0 0 8px;font-size:24px;line-height:118%}@media (width<=1024px){h2{font-size:20px}}p{margin:0}code,.counter{font-family:var(--mono);color:var(--text-h);border-radius:4px;display:inline-flex}code{background:var(--code-bg);padding:4px 8px;font-size:15px;line-height:135%}.hover\:bg-\[color-mix\(in_oklch\,var\(--secondary\)\,var\(--foreground\)_5\%\)\]:hover{background-color:color-mix(in oklch,var(--secondary),var(--foreground) 5%)}.hover\:bg-muted:hover{background-color:var(--muted)}.hover\:text-foreground:hover{color:var(--foreground)}.hover\:text-primary:hover{color:var(--primary)}.hover\:underline:hover{text-decoration-line:underline}.focus\:bg-accent:focus{background-color:var(--accent)}.focus\:text-accent-foreground:focus{color:var(--accent-foreground)}.focus-visible\:border-ring:focus-visible{border-color:var(--ring)}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-50:disabled{opacity:.5}.group\/dropdown-menu-item:focus .group-focus\/dropdown-menu-item\:text-accent-foreground{color:var(--accent-foreground)}.aria-expanded\:bg-muted[aria-expanded=true]{background-color:var(--muted)}.aria-expanded\:bg-secondary[aria-expanded=true]{background-color:var(--secondary)}.aria-expanded\:text-foreground[aria-expanded=true]{color:var(--foreground)}.aria-expanded\:text-secondary-foreground[aria-expanded=true]{color:var(--secondary-foreground)}.data-\[state\=closed\]\:overflow-hidden[data-state=closed]{overflow:hidden}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:var(--destructive)}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y:-.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x:.5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x:-.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y:.5rem}.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant=destructive]{color:var(--destructive)}@media (width>=640px){.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}}@media (width>=768px){.md\:hidden{display:none}.md\:justify-center{justify-content:center}}@media (width>=1024px){.lg\:gap-16{gap:4rem}}@media (prefers-color-scheme:dark){.dark\:border-input{border-color:var(--input)}.dark\:fill-white{fill:#fff}.dark\:stroke-black{stroke:#000}}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:.75rem;height:.75rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5 svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--primary-color:#ba0c2f;--primary-color-dark:#8a0922;--primary-color-glow:#ba0c2f4d;--primary-color-glow-10:#ba0c2f1a;--primary-color-glow-05:#ba0c2f0d;--hero-bg:#f7f4ef;--hero-text:#121212;--hero-border:#ba0c2f4d;--hero-kanji-color:#ba0c2f06;--hero-dots-color:#12121226;--hero-backdrop-color:#12121208;--hero-script-color:var(--primary-color);--hero-circle-color:#ba0c2f;--hero-portrait-filter:none;--black:#050505;--bg:#050505;--bg-2:#0a0a0a;--bg-3:#111;--surface:#0f0f0f;--border:#ffffff0f;--border-2:#ffffff1a;--white:#f5f5f5;--white-2:#ccc;--gray:#777;--gray-2:#444;--dim:#2a2a2a;--red:var(--primary-color);--red-dark:var(--primary-color-dark);--red-glow:var(--primary-color-glow);--font-display:"Anton", "Impact", sans-serif;--font-mono:"Space Mono", "Courier New", monospace;--font-sans:"Plus Jakarta Sans", sans-serif;--font-body:"Inter", sans-serif;--ease:cubic-bezier(.16, 1, .3, 1);--ease-out:cubic-bezier(0, 0, .2, 1)}html{scroll-behavior:auto;scrollbar-color:var(--red) var(--black);scrollbar-width:thin;font-size:16px}body{font-family:var(--font-mono);background:var(--bg);color:var(--white);-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;background-image:linear-gradient(#ffffff03 1px,#0000 1px),linear-gradient(90deg,#ffffff03 1px,#0000 1px);background-position:50%;background-size:80px 80px;position:fixed;inset:0}.cursor-glow{pointer-events:none;z-index:0;mix-blend-mode:screen;will-change:transform;background:radial-gradient(circle,#ba0c2f14 0%,#0000 70%);border-radius:50%;width:450px;height:450px;display:none;position:fixed;transform:translate(-50%,-50%)}.hero-name,.section-label,.contact-heading,.exp-role,.cluster-title{text-wrap:balance}.hero-focus,.summary-text,.exp-highlights li,.cluster-list li{text-wrap:pretty}::selection{background:var(--red);color:#fff}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--black)}::-webkit-scrollbar-thumb{background:var(--red);border-radius:2px}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.noise-overlay{z-index:99999;pointer-events:none;opacity:.04;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-repeat:repeat;background-size:256px 256px;position:fixed;inset:0}.geo-splash{z-index:100000;background:#050505;flex-direction:column;justify-content:center;align-items:center;transition:opacity 1s cubic-bezier(.16,1,.3,1),transform 1s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0;overflow:hidden}.geo-splash.done{opacity:0;visibility:hidden;pointer-events:none;transform:scale(1.08)}.geo-splash-badge{font-family:var(--font-mono);letter-spacing:.18em;color:#555;text-transform:uppercase;border:1px solid #333;padding:4px 14px;font-size:.65rem;position:absolute;top:18px;right:24px}.geo-splash-inner{text-align:center;z-index:2;flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative}.geo-splash-glow{filter:blur(40px);z-index:-1;pointer-events:none;background:radial-gradient(#ba0c2f59 0%,#ba0c2f2e 25%,#8c0a2314 50%,#50051408 70%,#0000 100%);width:clamp(400px,70vw,800px);height:clamp(300px,50vw,600px);animation:4s ease-in-out infinite alternate geo-glow-pulse;position:absolute;top:50%;left:50%;transform:translate(-50%,-60%)}@keyframes geo-glow-pulse{0%{opacity:.7;transform:translate(-50%,-60%)scale(.95)}to{opacity:1;transform:translate(-50%,-60%)scale(1.05)}}.geo-splash-bigtext{font-family:var(--font-display);letter-spacing:.03em;color:#0000;-webkit-text-stroke:1.5px #ffffff12;-webkit-user-select:none;user-select:none;z-index:1;margin-bottom:-.15em;font-size:clamp(6rem,22vw,18rem);font-weight:900;line-height:.85;position:relative}.geo-splash-tagline{font-family:var(--font-mono);letter-spacing:.35em;color:#666;text-transform:uppercase;margin-top:.5rem;margin-bottom:2.5rem;font-size:clamp(.55rem,1.5vw,.78rem)}.geo-splash-name{font-family:var(--font-display);letter-spacing:.04em;color:#fff;text-transform:uppercase;margin:0 0 1.5rem;font-size:clamp(2.8rem,8vw,5.5rem);font-weight:900;line-height:1}.geo-splash-skills{font-family:var(--font-mono);letter-spacing:.18em;color:#888;text-transform:uppercase;max-width:90vw;margin-bottom:2.5rem;font-size:clamp(.5rem,1.3vw,.72rem)}.geo-splash-contact{font-family:var(--font-mono);letter-spacing:.12em;color:#666;flex-wrap:wrap;justify-content:center;align-items:center;gap:12px;max-width:90vw;font-size:clamp(.48rem,1.1vw,.65rem);display:flex}.geo-splash-dot{color:var(--primary-color);vertical-align:middle;font-size:.35rem}.geo-splash-loader-bar{background:#1a1a1a;height:2px;position:absolute;bottom:0;left:0;right:0}.geo-splash-loader-progress{background:linear-gradient(90deg, var(--primary-color), #ff2050);width:0;height:100%;transition:width .25s;box-shadow:0 0 12px #ba0c2f80}@media (width<=600px){.geo-splash-contact{flex-direction:column;gap:6px}.geo-splash-dot{display:none}.geo-splash-badge{font-size:.55rem;top:12px;right:14px}}.top-nav{z-index:9000;border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(20px);height:48px;transition:transform .4s var(--ease);background:#050505d9;justify-content:space-between;align-items:center;padding:0 clamp(1rem,3vw,2rem);display:flex;position:fixed;top:0;left:0;right:0;transform:translateY(-100%)}.top-nav.nav-visible{transform:translateY(0)}.nav-left{align-items:center;gap:10px;display:flex}.nav-sys{font-family:var(--font-mono);letter-spacing:.15em;color:var(--white);font-size:.72rem;font-weight:700}.nav-dot-live{background:var(--red);width:6px;height:6px;box-shadow:0 0 8px var(--red-glow);border-radius:50%;animation:2s ease-in-out infinite pulse-dot}@keyframes pulse-dot{0%,to{opacity:1}50%{opacity:.3}}.nav-center{align-items:center;gap:12px;display:flex}.micro-data{letter-spacing:.12em;color:var(--gray);text-transform:uppercase;font-size:.58rem}.micro-sep{color:var(--dim);font-size:.58rem}.nav-right{align-items:center;gap:20px;display:flex}.nav-link-item{letter-spacing:.15em;color:var(--gray);text-transform:uppercase;font-size:.65rem;font-weight:700;transition:color .15s;position:relative}.nav-link-item:hover{color:var(--red)}.nav-link-item:after{content:"";background:var(--red);width:0;height:1px;transition:width .3s var(--ease);position:absolute;bottom:-2px;left:0}.nav-link-item:hover:after{width:100%}.jp-hero{background-color:var(--hero-bg);height:100vh;min-height:700px;color:var(--hero-text);transition:background-color .8s var(--ease), color .8s var(--ease);justify-content:center;align-items:center;padding:0 clamp(3rem,7vw,7.5rem);display:flex;position:relative;overflow:hidden}.jp-hero:after{content:"";border:1px solid var(--hero-border);pointer-events:none;z-index:4;transition:border-color .8s var(--ease);position:absolute;inset:20px}.jp-hero-pattern{pointer-events:none;z-index:1;opacity:.05;background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"60\" height=\"30\" viewBox=\"0 0 60 30\"><path d=\"M15 0C23.2843 0 30 6.71573 30 15C30 15.8284 29.3284 16.5 28.5 16.5C27.6716 16.5 27 15.8284 27 15C27 8.37258 21.6274 3 15 3C8.37258 3 3 8.37258 3 15C3 15.8284 2.32843 16.5 1.5 16.5C0.671573 16.5 0 15.8284 0 15C0 6.71573 6.71573 0 15 0Z\" fill=\"%23BA0C2F\"/></svg>");background-size:60px 30px;position:absolute;inset:20px}.jp-hero-kanji{color:var(--hero-kanji-color);pointer-events:none;z-index:1;-webkit-user-select:none;user-select:none;transition:color .8s var(--ease);font-family:Playfair Display,serif;font-size:clamp(12rem,24vw,26rem);font-weight:700;line-height:1;position:absolute;bottom:5%;left:28%;transform:translate(-50%)}.jp-corner-accent{z-index:5;pointer-events:none;position:absolute}.jp-accent-tl{align-items:center;gap:12px;display:flex;top:20px;left:20px}.jp-accent-tl .jp-accent-dot{color:var(--red);transition:color .8s var(--ease);font-size:1.1rem;line-height:1}.jp-accent-tl .jp-accent-lines{border-top:1.5px solid var(--red);border-left:1.5px solid var(--red);width:14px;height:14px;transition:border-color .8s var(--ease)}.jp-accent-tr{top:20px;right:20px}.jp-accent-tr .jp-accent-dot{color:var(--red);transition:color .8s var(--ease);font-size:1.1rem;line-height:1}.jp-accent-bl{bottom:20px;left:20px}.jp-accent-bl .jp-accent-lines{border-bottom:1.5px solid var(--red);border-left:1.5px solid var(--red);width:14px;height:14px;transition:border-color .8s var(--ease)}.jp-accent-br{bottom:20px;right:20px}.jp-accent-br .jp-accent-lines{border-bottom:1.5px solid var(--red);border-right:1.5px solid var(--red);width:14px;height:14px;transition:border-color .8s var(--ease)}.jp-brand-block{z-index:10;flex-direction:column;align-items:flex-start;gap:clamp(15px,2.5vh,30px);display:flex;position:absolute;top:clamp(40px,6vh,80px);left:clamp(40px,6vw,80px)}.jp-brand-name{font-family:var(--font-mono);letter-spacing:.2em;color:var(--hero-text);transition:color .8s var(--ease);font-size:.72rem;font-weight:700}.jp-brand-dot{color:var(--red);transition:color .8s var(--ease);margin-left:0;font-size:1.5rem;line-height:1}.jp-top-dots{z-index:10;gap:6px;display:flex;position:absolute;top:clamp(40px,6vh,80px);left:50%;transform:translate(-50%)}.jp-top-dots span{background:var(--hero-dots-color);width:6px;height:6px;transition:background-color .8s var(--ease);border-radius:50%;display:block}.jp-top-dots span.dot-red{background:var(--red)}.jp-left-edge-text{transform-origin:0;font-family:var(--font-mono);letter-spacing:.15em;white-space:nowrap;z-index:10;color:#888;align-items:center;gap:1.5rem;padding-left:70px;font-size:.58rem;display:flex;position:absolute;top:50%;left:-20px;transform:translateY(-50%)rotate(-90deg)}.jp-left-edge-text a{color:#888;transition:color .2s var(--ease)}.jp-left-edge-text a:hover{color:var(--red)}.edge-light{opacity:.65}.edge-bold-red{opacity:1;font-weight:700;color:var(--red)!important}.jp-hero-left-content{z-index:10;flex-direction:column;justify-content:center;align-items:flex-start;gap:20px;width:auto;display:flex;position:absolute;top:50%;left:clamp(2rem,8vw,8rem);transform:translateY(-50%)}.jp-title-block{margin-bottom:10px;position:relative}.jp-name-backdrop{color:var(--hero-backdrop-color);pointer-events:none;z-index:1;-webkit-user-select:none;user-select:none;transition:color .8s var(--ease);font-family:Anton,sans-serif;font-size:clamp(12rem,25vw,28rem);font-weight:900;line-height:1;position:absolute;bottom:40px;left:40px}.jp-name-main-container{z-index:2;position:relative}.jp-name-faint-japanese{font-family:var(--font-mono);letter-spacing:.35em;color:var(--hero-faint-japanese,#ba0c2f1f);-webkit-user-select:none;user-select:none;pointer-events:none;transition:color .8s var(--ease);font-size:.8rem;position:absolute;top:-24px;left:4px}.jp-name-display{color:var(--hero-text);letter-spacing:-.05em;text-transform:uppercase;transition:color .8s var(--ease);margin:0;font-family:Anton,sans-serif;font-size:clamp(7.5rem,13vw,14.5rem);font-weight:900;line-height:.85}.jp-name-script{color:var(--hero-script-color);text-transform:none;z-index:3;pointer-events:none;transform-origin:0;transition:color .8s var(--ease);font-family:Mrs Saint Delafield,cursive;font-size:clamp(8.5rem,14vw,13.5rem);font-weight:400;line-height:1;position:absolute;top:75%;left:35%;transform:rotate(-12deg)}.jp-hero-links{gap:clamp(6rem,15vw,18rem);margin-top:15px;padding-left:45px;display:flex}.jp-hero-links a{font-family:var(--font-mono);letter-spacing:.2em;transition:opacity .2s var(--ease);font-size:.72rem;font-weight:700;text-decoration:none}.jp-link-contact{color:var(--red)!important}.jp-link-work{opacity:.6;transition:color .8s var(--ease), opacity .2s var(--ease);color:var(--hero-text)!important}.jp-hero-links a:hover{opacity:1}.jp-bottom-left-tagline{font-family:var(--font-mono);letter-spacing:.15em;color:#888;z-index:10;font-size:.62rem;font-weight:700;position:absolute;bottom:clamp(40px,6vh,80px);left:clamp(40px,6vw,80px)}.jp-hero-circle-wrap{z-index:5;justify-content:center;align-items:center;margin:0;display:flex;position:absolute;top:auto;bottom:20px;left:75%;overflow:visible;transform:translate(-50%)}.jp-hero-circle{background:var(--hero-circle-color);z-index:1;width:clamp(350px,40vw,580px);height:clamp(350px,40vw,580px);box-shadow:var(--hero-circle-shadow,0 20px 50px #ba0c2f26);transition:background-color .8s var(--ease), box-shadow .8s var(--ease);border-radius:50%;position:relative}.jp-hero-circle:after{content:"";border:1px solid var(--hero-border);pointer-events:none;transition:border-color .8s var(--ease);border-radius:50%;position:absolute;inset:-24px}.jp-hero-portrait{z-index:2;pointer-events:none;max-height:100%;position:absolute;bottom:0;left:50%;transform:translate(-50%);-webkit-mask-image:linear-gradient(#000 60%,#0000 88%);mask-image:linear-gradient(#000 60%,#0000 88%);display:block!important}.jp-right-edge-text{transform-origin:100%;font-family:var(--font-mono);letter-spacing:.2em;color:#ba0c2f;z-index:10;white-space:nowrap;padding-right:70px;font-size:.58rem;position:absolute;top:50%;right:-30px;transform:translateY(-50%)rotate(90deg)}.section{border-top:1px solid var(--border);padding:clamp(80px,12vh,160px) 0;position:relative}.section-grid{max-width:1200px;margin:0 auto;padding:0 clamp(1.5rem,4vw,3rem)}.section-label{align-items:center;gap:1rem;margin-bottom:clamp(2.5rem,5vh,4rem);display:flex}.label-num{font-family:var(--font-mono);color:var(--red);letter-spacing:.1em;border:1px solid #ba0c2f40;border-radius:2px;padding:4px 10px;font-size:.65rem}.label-text{font-family:var(--font-mono);letter-spacing:.15em;color:var(--gray);text-transform:uppercase;font-size:.7rem}.label-line{background:var(--border);flex:1;height:1px}.text-accent{color:var(--red);font-style:normal}.summary-text{color:var(--white-2);max-width:800px;font-size:clamp(1.1rem,2.2vw,1.6rem);line-height:1.8;font-family:var(--font-mono);font-weight:400}.metrics-grid{grid-template-columns:repeat(4,1fr);gap:2px;display:grid}.metric-card{background:var(--surface);border:1px solid var(--border);text-align:center;transition:background-color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);padding:clamp(2rem,4vh,3rem) clamp(1.5rem,3vw,2.5rem);position:relative;overflow:hidden}.metric-card:hover{border-color:var(--red);background:#ba0c2f0a}.metric-card:hover .metric-value{color:var(--red)}.metric-corner{width:8px;height:8px;position:absolute}.metric-corner:before,.metric-corner:after{content:"";background:var(--gray-2);transition:background .3s;position:absolute}.metric-card:hover .metric-corner:before,.metric-card:hover .metric-corner:after{background:var(--red)}.mc-tl{top:6px;left:6px}.mc-tl:before{width:8px;height:1px;top:0;left:0}.mc-tl:after{width:1px;height:8px;top:0;left:0}.mc-tr{top:6px;right:6px}.mc-tr:before{width:8px;height:1px;top:0;right:0}.mc-tr:after{width:1px;height:8px;top:0;right:0}.mc-bl{bottom:6px;left:6px}.mc-bl:before{width:8px;height:1px;bottom:0;left:0}.mc-bl:after{width:1px;height:8px;bottom:0;left:0}.mc-br{bottom:6px;right:6px}.mc-br:before{width:8px;height:1px;bottom:0;right:0}.mc-br:after{width:1px;height:8px;bottom:0;right:0}.metric-value{font-family:var(--font-display);color:var(--white);margin-bottom:.75rem;font-size:clamp(2.5rem,5vw,4rem);line-height:1;transition:color .3s}.metric-label{font-family:var(--font-mono);color:var(--gray);letter-spacing:.12em;text-transform:uppercase;font-size:.6rem;line-height:1.5}.experience-list{flex-direction:column;gap:0;display:flex}.exp-card{border-bottom:1px solid var(--border);padding:clamp(1.5rem,3vh,2.5rem) 0;transition:background .3s}.exp-card:hover{background:#ba0c2f05}.exp-card:last-child{border-bottom:none}.exp-header{gap:clamp(1.5rem,3vw,3rem);display:flex}.exp-left{flex-direction:column;align-items:center;gap:8px;min-width:32px;display:flex}.exp-idx{font-family:var(--font-mono);color:var(--red);letter-spacing:.1em;font-size:.6rem}.exp-dot-line{flex-direction:column;flex:1;align-items:center;gap:0;display:flex}.exp-dot{border:1px solid var(--red);background:0 0;border-radius:50%;flex-shrink:0;width:6px;height:6px}.exp-v-line{background:var(--border);flex:1;width:1px;min-height:30px}.exp-main{flex:1}.exp-role{font-family:var(--font-display);color:var(--white);margin-bottom:.5rem;font-size:clamp(1.2rem,2.5vw,1.8rem);font-weight:400;transition:color .15s}.exp-card:hover .exp-role{color:var(--red)}.exp-meta{flex-wrap:wrap;gap:1rem;margin-bottom:1rem;display:flex}.exp-company{color:var(--gray);letter-spacing:.08em;font-size:.68rem}.exp-duration{color:var(--dim);letter-spacing:.1em;border:1px solid var(--border);padding:2px 8px;font-size:.62rem}.exp-highlights{flex-direction:column;gap:.6rem;list-style:none;display:flex}.exp-highlights li{color:var(--gray);padding-left:16px;font-size:.78rem;line-height:1.65;position:relative}.exp-highlights li:before{content:"→";color:var(--red);font-size:.7rem;position:absolute;left:0}.skills-section{background-image:url(skills_bg.png);background-position:50%;background-repeat:no-repeat;background-size:cover;position:relative}.skills-section:before{content:"";z-index:1;pointer-events:none;background:#050505b3;position:absolute;inset:0}.skills-section>*{z-index:2;position:relative}.skills-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.skill-cluster{background:var(--surface);border:1px solid var(--border);transition:border-color .4s var(--ease), background-color .4s var(--ease);padding:clamp(1.5rem,3vh,2.5rem);position:relative;overflow:hidden}.skill-cluster:after{content:"";width:100%;height:100%;transition:left .6s var(--ease);pointer-events:none;background:linear-gradient(90deg,#0000,#ba0c2f08,#0000);position:absolute;top:0;left:-100%}.skill-cluster:hover{border-color:var(--red);background:#ba0c2f08}.skill-cluster:hover:after{left:100%}.skill-cluster[data-cluster=content]{border-color:#ba0c2f4d}.skill-cluster[data-cluster=content]:hover{border-color:var(--red)}.cluster-header{align-items:center;gap:10px;margin-bottom:1.2rem;display:flex}.cluster-icon{color:var(--red);font-size:.6rem}.cluster-title{font-family:var(--font-sans);letter-spacing:.08em;color:var(--white);text-transform:uppercase;flex:1;font-size:.85rem;font-weight:800}.cluster-status{font-family:var(--font-mono);letter-spacing:.1em;color:#888;text-transform:uppercase;white-space:nowrap;border:1px solid #333;padding:3px 8px;font-size:.55rem;font-weight:700;transition:color .3s,border-color .3s}.skill-cluster:hover .cluster-status{color:var(--red);border-color:var(--red)}.cluster-status-new{background:#ba0c2f1a;color:var(--red)!important;border-color:var(--red)!important}.cluster-list{flex-direction:column;gap:.65rem;list-style:none;display:flex}.cluster-list li{font-family:var(--font-sans);color:var(--white-2);cursor:default;padding-left:14px;font-size:.8rem;font-weight:500;line-height:1.4;transition:color .2s;position:relative}.cluster-list li:before{content:"//";color:var(--dim);font-size:.6rem;font-family:var(--font-mono);transition:color .2s;position:absolute;left:0}.cluster-list li:hover{color:var(--white)}.cluster-list li:hover:before{color:var(--red)}.skill-name{margin-bottom:4px;display:block}.skill-bar{background:var(--dim);border-radius:1px;width:100%;height:2px;overflow:hidden}.skill-bar-fill{background:linear-gradient(90deg, var(--red), #f35);border-radius:1px;height:100%}.cluster-detail{border-top:1px dashed #ffffff0d;margin-top:1.2rem;padding-top:1rem}.detail-tag{font-family:var(--font-mono);letter-spacing:.2em;color:var(--red);margin-bottom:.4rem;font-size:.55rem;display:block}.cluster-detail p{font-family:var(--font-body);color:var(--gray);font-size:.75rem;font-weight:400;line-height:1.6}.testimonials-grid{grid-template-columns:repeat(2,1fr);gap:2px;display:grid}.testimonial-card{background:var(--surface);border:1px solid var(--border);transition:background-color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease);flex-direction:column;justify-content:space-between;gap:1.5rem;padding:clamp(2rem,4vh,3rem) clamp(1.5rem,3vw,2.5rem);display:flex;position:relative}.testimonial-card:hover{border-color:var(--red);background:#ba0c2f0a}.testimonial-corner{width:8px;height:8px;position:absolute}.testimonial-corner:before,.testimonial-corner:after{content:"";background:var(--gray-2);transition:background .3s;position:absolute}.testimonial-card:hover .testimonial-corner:before,.testimonial-card:hover .testimonial-corner:after{background:var(--red)}.tc-tl{top:6px;left:6px}.tc-tl:before{width:8px;height:1px;top:0;left:0}.tc-tl:after{width:1px;height:8px;top:0;left:0}.tc-tr{top:6px;right:6px}.tc-tr:before{width:8px;height:1px;top:0;right:0}.tc-tr:after{width:1px;height:8px;top:0;right:0}.tc-bl{bottom:6px;left:6px}.tc-bl:before{width:8px;height:1px;bottom:0;left:0}.tc-bl:after{width:1px;height:8px;bottom:0;left:0}.tc-br{bottom:6px;right:6px}.tc-br:before{width:8px;height:1px;bottom:0;right:0}.tc-br:after{width:1px;height:8px;bottom:0;right:0}.testimonial-rating{color:var(--red);letter-spacing:.1em;font-size:.72rem}.rating-val{color:var(--white);font-family:var(--font-mono);margin-left:4px;font-weight:700}.testimonial-text{font-family:var(--font-mono);color:var(--white-2);font-size:.75rem;line-height:1.65}.testimonial-author{align-items:center;gap:8px;display:flex}.author-icon{color:var(--red);font-size:.5rem}.author-role{font-family:var(--font-mono);color:var(--white);letter-spacing:.1em;font-size:.65rem;font-weight:700}.gallery-section{flex-direction:column;min-height:100vh;display:flex;position:relative;overflow:hidden}.gallery-bg-glow{filter:blur(120px)brightness(.45);opacity:.28;transition:background-image 1.2s var(--ease);z-index:0;pointer-events:none;background-position:50%;background-size:cover;position:absolute;inset:0}.arc-gallery-wrapper{z-index:1;flex-direction:column;flex:1;justify-content:center;align-items:center;width:100%;min-height:650px;display:flex;position:relative}.arc-gallery-container{cursor:grab;justify-content:center;align-items:flex-end;width:100%;height:520px;display:flex;position:relative;overflow:visible}.arc-gallery-container:active{cursor:grabbing}.arc-gallery-track{width:100%;height:100%;transform-style:preserve-3d;will-change:transform;justify-content:center;align-items:flex-end;display:flex;position:absolute}.arc-card{transform-origin:bottom;will-change:transform;width:clamp(260px,20vw,320px);height:clamp(360px,26vw,440px);transition:opacity .5s var(--ease), filter .5s var(--ease);z-index:1;position:absolute}.arc-card-inner{width:100%;height:100%;transition:box-shadow .4s var(--ease), transform .4s var(--ease);background:0 0;border:none;border-radius:16px;flex-direction:column;justify-content:center;padding:0;display:flex;overflow:hidden}.arc-card.active .arc-card-inner{box-shadow:0 15px 45px #ba0c2f38}.arc-card-header{display:none}.arc-card-img-wrap{border:none;border-radius:16px;flex:1;width:100%;height:100%;margin-bottom:0;overflow:hidden}.arc-card-img-wrap img{-o-object-fit:contain;object-fit:contain;filter:grayscale()brightness(.7);width:100%;height:100%;transition:filter .6s var(--ease), transform .6s var(--ease)}.arc-card.active .arc-card-img-wrap img,.arc-card:hover .arc-card-img-wrap img{filter:grayscale(0)brightness(.95);transform:scale(1.04)}.arc-card-body,.arc-card-title,.arc-card-desc,.arc-card-btn,.arc-card-num,.arc-card-loc{display:none}.gallery-nav{z-index:10;gap:1.5rem;margin-top:2.5rem;display:flex}.gallery-nav-btn{width:46px;height:46px;color:var(--white);cursor:pointer;transition:all .3s var(--ease);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#050505b3;border:1px solid #ffffff1a;border-radius:50%;justify-content:center;align-items:center;display:flex}.gallery-nav-btn:hover{border-color:var(--red);color:var(--red);transform:scale(1.08)}.contact-content{grid-template-columns:1fr 1fr;align-items:center;gap:clamp(2rem,5vw,6rem);display:grid}.contact-heading{font-family:var(--font-display);letter-spacing:-.02em;font-size:clamp(3rem,7vw,6rem);font-weight:400;line-height:.95}.contact-grid{flex-direction:column;gap:0;display:flex}.contact-block{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding:1.5rem 0;transition:all .2s;display:flex}.contact-block:last-child{border-bottom:none}.contact-block:hover{padding-left:12px}.contact-block:hover .contact-key{color:var(--red)}.contact-key{letter-spacing:.2em;color:var(--dim);text-transform:uppercase;font-size:.58rem;transition:color .2s}.contact-val{color:var(--white-2);letter-spacing:.02em;font-size:.82rem;transition:color .2s}.contact-block:hover .contact-val{color:var(--white)}.site-footer{border-top:1px solid var(--border);padding:1.5rem 0}.footer-inner{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:0 clamp(1.5rem,4vw,3rem);display:flex}.footer-brand{letter-spacing:.15em;color:var(--white);font-size:.7rem;font-weight:700}.footer-copy{color:var(--dim);letter-spacing:.1em;text-transform:uppercase;font-size:.55rem}.footer-top{color:var(--gray);letter-spacing:.1em;font-size:.6rem;transition:color .15s}.footer-top:hover{color:var(--red)}.what-i-do-grid{grid-template-columns:repeat(3,1fr);gap:2px;display:grid}.wid-card{background:var(--surface);border:1px solid var(--border);transition:background-color .3s var(--ease), border-color .3s var(--ease), box-shadow .3s var(--ease), transform .3s var(--ease);cursor:default;flex-direction:column;gap:1rem;padding:clamp(1.8rem,3.5vh,2.8rem) clamp(1.5rem,3vw,2.2rem);display:flex;position:relative;overflow:hidden}.wid-card:before{content:"";background:var(--red);width:0;height:2px;transition:width .4s var(--ease);position:absolute;top:0;left:0}.wid-card:hover{border-color:var(--red);box-shadow:0 0 30px var(--primary-color-glow-05);background:#ba0c2f0a}.wid-card:hover:before{width:100%}.wid-corner{width:8px;height:8px;position:absolute}.wid-corner:before,.wid-corner:after{content:"";background:var(--gray-2);transition:background .3s;position:absolute}.wid-card:hover .wid-corner:before,.wid-card:hover .wid-corner:after{background:var(--red)}.wc-tl{top:6px;left:6px}.wc-tl:before{width:8px;height:1px;top:0;left:0}.wc-tl:after{width:1px;height:8px;top:0;left:0}.wc-tr{top:6px;right:6px}.wc-tr:before{width:8px;height:1px;top:0;right:0}.wc-tr:after{width:1px;height:8px;top:0;right:0}.wc-bl{bottom:6px;left:6px}.wc-bl:before{width:8px;height:1px;bottom:0;left:0}.wc-bl:after{width:1px;height:8px;bottom:0;left:0}.wc-br{bottom:6px;right:6px}.wc-br:before{width:8px;height:1px;bottom:0;right:0}.wc-br:after{width:1px;height:8px;bottom:0;right:0}.wid-icon{color:var(--red);transition:transform .3s var(--ease);font-size:1.4rem;line-height:1}.wid-card:hover .wid-icon{transform:scale(1.15)}.wid-title{font-family:var(--font-mono);color:var(--white);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem;font-weight:700}.wid-desc{font-family:var(--font-mono);color:var(--gray);font-size:.68rem;line-height:1.7}.wid-tag{font-family:var(--font-mono);color:var(--red);letter-spacing:.15em;border-top:1px solid var(--border);margin-top:auto;padding-top:.5rem;font-size:.58rem}.faq-list{flex-direction:column;gap:2px;display:flex}.faq-item{background:var(--surface);border:1px solid var(--border);transition:border-color .3s var(--ease), background-color .3s var(--ease);overflow:hidden}.faq-item:hover,.faq-item.faq-open{border-color:#ba0c2f4d}.faq-item.faq-open{background:#ba0c2f05}.faq-trigger{width:100%;color:inherit;cursor:pointer;text-align:left;font-family:var(--font-mono);background:0 0;border:none;align-items:center;gap:1.2rem;padding:clamp(1.2rem,2.5vh,1.8rem) clamp(1.5rem,3vw,2.2rem);transition:color .3s;display:flex}.faq-trigger:hover{color:var(--red)}.faq-idx{font-family:var(--font-mono);color:var(--red);letter-spacing:.1em;min-width:28px;font-size:.6rem;font-weight:700}.faq-question{font-family:var(--font-mono);color:var(--white);letter-spacing:.06em;text-transform:uppercase;flex:1;font-size:.75rem;font-weight:700;line-height:1.5}.faq-trigger:hover .faq-question{color:var(--red)}.faq-toggle-label{font-family:var(--font-mono);letter-spacing:.15em;color:var(--gray);white-space:nowrap;align-items:center;gap:4px;font-size:.58rem;transition:color .3s;display:flex}.faq-trigger:hover .faq-toggle-label,.faq-toggle-bracket{color:var(--red)}.faq-answer-wrap{transition:height .35s var(--ease), opacity .35s var(--ease);overflow:hidden}.faq-answer-wrap[aria-hidden=true]{opacity:0;height:0}.faq-answer-wrap[aria-hidden=false]{opacity:1}.faq-answer{padding:0 clamp(1.5rem,3vw,2.2rem) clamp(1.2rem,2.5vh,1.8rem) calc(clamp(1.5rem,3vw,2.2rem) + 28px + 1.2rem)}.faq-answer-text{font-family:var(--font-mono);color:var(--white-2);max-width:720px;font-size:.7rem;line-height:1.8}.faq-answer-text a{color:var(--red);letter-spacing:.05em;font-weight:700;text-decoration:none;transition:color .2s}.faq-answer-text a:hover{color:var(--white)}.faq-divider{background:var(--red);opacity:.4;width:40px;height:1px;margin-top:12px}[data-animate]{will-change:transform, opacity}.exp-role:hover,.cluster-title:hover{animation:.15s steps(2,end) forwards glitch-snap}@keyframes glitch-snap{0%{transform:translate(0)}25%{transform:translate(-2px,1px)}50%{transform:translate(2px,-1px)}75%{transform:translate(-1px,2px)}to{transform:translate(0)}}@media (width<=1024px){.jp-hero{flex-direction:column;justify-content:center;align-items:center;gap:.5rem;height:auto;min-height:100vh;padding:70px 1.5rem 30px}.jp-hero:after,.jp-hero-pattern{inset:10px}.jp-brand-block{display:none}.jp-hero-circle-wrap{z-index:3;flex-shrink:0;order:1;width:280px;height:280px;margin:0 auto 20px;position:relative;top:auto;left:auto;transform:none}.jp-hero-circle{width:280px;height:280px}.jp-hero-portrait{max-height:95%;left:50%;transform:translate(-50%)}.jp-hero-left-content{text-align:center;order:2;align-items:center;max-width:100%;margin-top:50px;margin-left:0;padding-top:20px;position:relative;top:auto;left:auto;transform:none}.jp-top-dots{display:none}.jp-title-block{margin-bottom:5px}.jp-name-backdrop{display:none}.jp-name-display{font-size:clamp(3.5rem,13vw,6rem)}.jp-name-script{font-size:clamp(3.5rem,13vw,6rem);top:70%;left:25%}.jp-name-faint-japanese{display:none}.jp-hero-links{order:3;justify-content:center;gap:3rem;margin-top:15px;padding-left:0}.jp-bottom-left-tagline{text-align:center;order:4;margin-top:15px;position:relative;bottom:auto;left:auto}.jp-left-edge-text,.jp-right-edge-text,.jp-top-header,.jp-hero-kanji{display:none}.metrics-grid,.what-i-do-grid,.skills-grid{grid-template-columns:repeat(2,1fr)}.contact-content{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.nav-center{display:none}.jp-hero{gap:1rem;padding:60px 1rem 30px}.jp-hero-circle-wrap,.jp-hero-circle{width:240px;height:240px}.jp-name-display{font-size:clamp(3.5rem,14vw,5rem)}.jp-name-script{font-size:clamp(4rem,15vw,5.5rem)}.metrics-grid{grid-template-columns:1fr 1fr}.what-i-do-grid,.skills-grid,.testimonials-grid{grid-template-columns:1fr}.exp-header{flex-direction:column;gap:1rem}.exp-left{flex-direction:row}.exp-v-line{display:none}.gallery-grid{grid-template-columns:repeat(2,1fr)}.tornado-card{width:140px;height:190px}}@media (width<=480px){.metrics-grid,.gallery-grid{grid-template-columns:1fr}}.nav-terminal-btn{border:1px solid var(--border-2);color:var(--white);font-family:var(--font-mono);letter-spacing:.15em;cursor:pointer;transition:all .3s var(--ease);background:0 0;border-radius:2px;align-items:center;gap:8px;padding:6px 12px;font-size:.65rem;display:flex}.nav-terminal-btn:hover{border-color:var(--red);color:var(--red);box-shadow:0 0 10px var(--primary-color-glow-10)}.nav-terminal-btn .btn-indicator{color:var(--red);transition:color .8s var(--ease)}.floating-terminal-trigger{background:var(--black);border:1px solid var(--red);width:50px;height:50px;color:var(--red);font-family:var(--font-mono);cursor:pointer;z-index:8999;box-shadow:0 0 15px var(--red-glow);transition:all .3s var(--ease);border-radius:50%;justify-content:center;align-items:center;font-size:1.1rem;font-weight:700;display:flex;position:fixed;bottom:30px;right:30px}.floating-terminal-trigger:hover{box-shadow:0 0 25px var(--red);color:var(--white);background:var(--red);transform:scale(1.1)}.floating-terminal-trigger .pulse-ring{border:1px solid var(--red);transition:border-color .8s var(--ease);border-radius:50%;animation:2s ease-out infinite ring-pulse;position:absolute;inset:-1px}@keyframes ring-pulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.telemetry-hud{z-index:8999;border:1px solid var(--border);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-family:var(--font-mono);letter-spacing:.1em;pointer-events:none;transition:opacity .3s var(--ease), border-color .8s var(--ease);background:#050505bf;border-radius:2px;flex-direction:column;gap:4px;padding:10px 14px;font-size:.58rem;display:flex;position:fixed;bottom:30px;left:20px}.telemetry-hud .hud-item{justify-content:space-between;gap:15px;display:flex}.telemetry-hud .hud-label{color:var(--gray)}.telemetry-hud .hud-val{color:var(--white);font-weight:700}.terminal-overlay{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:99999;opacity:0;visibility:hidden;transition:opacity .4s var(--ease), visibility .4s;background:#000c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.terminal-overlay.open{opacity:1;visibility:visible}.terminal-window{border:1px solid var(--red);width:100%;max-width:800px;height:500px;box-shadow:0 10px 50px #000c, 0 0 30px var(--primary-color-glow-10);transition:border-color .8s var(--ease), box-shadow .8s var(--ease);background:#080808;border-radius:4px;flex-direction:column;display:flex;position:relative;overflow:hidden}.terminal-header{border-bottom:1px solid var(--border-2);-webkit-user-select:none;user-select:none;background:#111;justify-content:space-between;align-items:center;height:38px;padding:0 16px;display:flex}.terminal-dots{gap:8px;display:flex}.terminal-dot{cursor:pointer;background:#2a2a2a;border-radius:50%;width:10px;height:10px;display:inline-block}.terminal-dot.dot-close{background:var(--red);transition:background-color .8s var(--ease)}.terminal-title{letter-spacing:.15em;color:var(--gray);font-size:.65rem;font-weight:700}.terminal-status{color:var(--red);letter-spacing:.1em;transition:color .8s var(--ease);font-size:.58rem}.terminal-body{font-family:var(--font-mono);color:var(--white);flex-direction:column;flex:1;padding:20px;font-size:.72rem;line-height:1.6;display:flex;overflow-y:auto}.terminal-output{margin-bottom:10px}.terminal-line{white-space:pre-wrap;word-break:break-all;margin-bottom:4px}.terminal-line.system-msg{color:var(--gray)}.terminal-line.error-msg{color:#ff3b30}.terminal-line.success-msg{color:var(--red);transition:color .8s var(--ease)}.terminal-input-line{align-items:center;gap:8px;margin-top:auto;display:flex}.terminal-prompt{color:var(--red);white-space:nowrap;transition:color .8s var(--ease);font-weight:700}.terminal-input{color:var(--white);font-family:var(--font-mono);caret-color:var(--red);transition:caret-color .8s var(--ease);background:0 0;border:none;outline:none;flex:1;font-size:.72rem}.geo-widget{border:1px solid var(--border-2);background:var(--surface);max-width:800px;transition:border-color .8s var(--ease);border-radius:4px;margin-top:3.5rem;overflow:hidden;box-shadow:0 4px 20px #0000004d}.geo-widget-header{border-bottom:1px solid var(--border);background:#ffffff05;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.geo-widget-title{font-family:var(--font-mono);letter-spacing:.15em;color:var(--white);font-size:.68rem;font-weight:700}.geo-widget-badge{color:var(--red);border:1px solid var(--primary-color-glow);letter-spacing:.1em;transition:color .8s var(--ease), border-color .8s var(--ease);border-radius:2px;padding:2px 8px;font-size:.58rem}.geo-widget-body{padding:24px}.geo-widget-instructions{color:var(--gray);margin-bottom:1.2rem;font-size:.75rem;line-height:1.5}.geo-input-wrap{gap:10px;display:flex}.geo-input{border:1px solid var(--border-2);color:var(--white);font-family:var(--font-mono);background:#0000004d;border-radius:2px;outline:none;flex:1;padding:10px 16px;font-size:.78rem;transition:border-color .3s}.geo-input:focus{border-color:var(--red)}.geo-btn{background:var(--red);color:var(--white);font-family:var(--font-mono);letter-spacing:.1em;cursor:pointer;transition:all .3s var(--ease);border:none;border-radius:2px;padding:0 20px;font-size:.75rem;font-weight:700}.geo-btn:hover{background:var(--red-dark);box-shadow:0 0 15px var(--red-glow)}.geo-scan-container{border:1px solid var(--border);background:#00000080;border-radius:2px;margin-top:20px;padding:15px}.geo-scan-log{height:100px;font-family:var(--font-mono);color:var(--gray);margin-bottom:12px;font-size:.65rem;line-height:1.6;overflow-y:auto}.geo-scan-line{margin-bottom:2px}.geo-scan-line.log-success{color:var(--red);transition:color .8s var(--ease)}.geo-progress-bar{background:var(--dim);width:100%;height:2px;overflow:hidden}.geo-progress-fill{background:var(--red);width:0;height:100%;transition:width .1s, background-color .8s var(--ease)}.geo-results{border-top:1px dashed var(--border-2);margin-top:24px;padding-top:24px;animation:.5s forwards fadeIn}.geo-score-card{background:var(--primary-color-glow-05,#ba0c2f0a);border:1px solid var(--primary-color-glow);text-align:center;transition:border-color .8s var(--ease), background-color .8s var(--ease);border-radius:2px;margin-bottom:20px;padding:20px}.geo-score-value{font-family:var(--font-display);color:var(--red);transition:color .8s var(--ease);margin-bottom:6px;font-size:3rem;line-height:1}.geo-score-label{color:var(--white-2);letter-spacing:.15em;font-size:.62rem}.geo-engines-grid{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.geo-engine-row{align-items:center;gap:15px;font-size:.7rem;display:flex}.engine-name{width:150px;color:var(--gray)}.engine-bar-wrap{background:var(--dim);border-radius:2px;flex:1;height:4px;overflow:hidden}.engine-bar-fill{background:var(--red);width:0;height:100%;transition:width 1s var(--ease), background-color .8s var(--ease)}.engine-score{text-align:right;width:40px;color:var(--white);font-weight:700}.geo-insights{border:1px solid var(--border);background:#ffffff03;padding:16px}.insight-title{color:var(--red);letter-spacing:.1em;transition:color .8s var(--ease);margin-bottom:10px;font-size:.65rem;font-weight:700}.insight-list{flex-direction:column;gap:6px;list-style:none;display:flex}.insight-list li{color:var(--gray);padding-left:12px;font-size:.68rem;line-height:1.4;position:relative}.insight-list li:before{content:"//";color:var(--red);transition:color .8s var(--ease);position:absolute;left:0}.exp-dossier-trigger-wrap{margin-top:15px}.exp-dossier-btn{color:var(--gray);font-family:var(--font-mono);letter-spacing:.15em;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:4px 0;font-size:.65rem;transition:color .3s;display:flex}.exp-dossier-btn:hover{color:var(--red)}.exp-dossier-btn .btn-bracket{color:var(--dim);transition:color .3s}.exp-dossier-btn:hover .btn-bracket{color:var(--red)}.exp-dossier-content{will-change:height, opacity;transition:height .4s var(--ease), opacity .4s var(--ease)}.dossier-inner{border:1px solid var(--border);background:#05050566;border-radius:2px;flex-direction:column;gap:15px;margin-top:15px;padding:20px;display:flex}.dossier-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.dossier-block{flex-direction:column;gap:6px;display:flex}.dossier-key{letter-spacing:.15em;color:var(--red);transition:color .8s var(--ease);font-size:.58rem;font-weight:700}.dossier-val{color:var(--gray);font-size:.7rem;line-height:1.5}.dossier-log{border-top:1px dashed var(--border-2);padding-top:12px}.dossier-log-header{letter-spacing:.12em;color:var(--white);margin-bottom:6px;font-size:.58rem;font-weight:700}.dossier-log-text{color:var(--gray);font-size:.68rem;font-style:italic;line-height:1.6}.osint-overlay{-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);z-index:99999;opacity:0;visibility:hidden;transition:opacity .4s var(--ease), visibility .4s;background:#000000d9;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.osint-overlay.open{opacity:1;visibility:visible}.osint-panel{border:1px solid var(--red);width:100%;max-width:900px;box-shadow:0 10px 50px #000c, 0 0 35px var(--primary-color-glow-10);transition:border-color .8s var(--ease), box-shadow .8s var(--ease);background:#050505;border-radius:4px;flex-direction:column;display:flex;overflow:hidden}.osint-header{border-bottom:1px solid var(--border);-webkit-user-select:none;user-select:none;background:#0f0f0f;justify-content:space-between;align-items:center;height:44px;padding:0 20px;display:flex}.osint-title{font-family:var(--font-mono);letter-spacing:.2em;color:var(--white);font-size:.65rem;font-weight:700}.osint-close{color:var(--gray);cursor:pointer;background:0 0;border:none;font-size:1.2rem;transition:color .3s}.osint-close:hover{color:var(--red)}.osint-body{grid-template-columns:1fr 1fr;gap:24px;padding:24px;display:grid}.osint-img-col{border:1px solid var(--border);background:#0a0a0a;border-radius:2px;justify-content:center;align-items:center;padding:10px;display:flex}.osint-img-wrap{background:#000;justify-content:center;align-items:center;width:100%;height:380px;display:flex;position:relative;overflow:hidden}.osint-img-wrap img{-o-object-fit:contain;object-fit:contain;border-radius:2px;max-width:100%;max-height:100%}.osint-scanner-line{background:var(--red);height:2px;box-shadow:0 0 10px var(--red);z-index:2;pointer-events:none;transition:background-color .8s var(--ease), box-shadow .8s var(--ease);display:none;position:absolute;top:0;left:0;right:0}.osint-overlay.open .osint-scanner-line{animation:3s linear infinite scan-line-anim;display:block}@keyframes scan-line-anim{0%{top:0%}50%{top:100%}to{top:0%}}.osint-reticle{border:1px solid var(--red);pointer-events:none;z-index:2;opacity:.5;width:40px;height:40px;transition:border-color .8s var(--ease);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.osint-reticle:before,.osint-reticle:after{content:"";background:var(--red);transition:background-color .8s var(--ease);position:absolute}.osint-reticle:before{width:100%;height:1px;top:50%;left:0}.osint-reticle:after{width:1px;height:100%;top:0;left:50%}.osint-data-col{flex-direction:column;justify-content:center;gap:14px;display:flex}.osint-data-block{border-bottom:1px solid var(--border);flex-direction:column;gap:4px;padding-bottom:8px;display:flex}.osint-data-block:last-child{border-bottom:none}.osint-data-col .data-key{letter-spacing:.15em;color:var(--gray);font-size:.55rem;font-weight:700}.osint-data-col .data-val{color:var(--white-2);font-size:.72rem}.osint-log-block{flex-direction:column;gap:6px;display:flex}.osint-log-stream{border:1px solid var(--border-2);height:90px;font-family:var(--font-mono);color:var(--red);transition:color .8s var(--ease);background:#00000080;padding:10px;font-size:.62rem;line-height:1.5;overflow-y:auto}.contact-left-col{flex-direction:column;gap:2rem;width:100%;max-width:500px;display:flex}.secure-form-terminal{background:var(--surface);border:1px solid var(--border-2);width:100%;transition:border-color .8s var(--ease);border-radius:4px;padding:24px;position:relative;overflow:hidden;box-shadow:0 4px 20px #0000004d}.secure-form-terminal .form-title{font-family:var(--font-mono);letter-spacing:.15em;color:var(--white);border-bottom:1px solid var(--border);text-transform:uppercase;margin-bottom:20px;padding-bottom:8px;font-size:.65rem;font-weight:700}.secure-form-terminal .form-body{flex-direction:column;gap:15px;display:flex}.secure-form-terminal .form-row{flex-direction:column;gap:6px;display:flex}.secure-form-terminal .form-label{letter-spacing:.15em;color:var(--gray);font-size:.58rem;font-weight:700}.secure-form-terminal .form-input{border:1px solid var(--border-2);color:var(--white);font-family:var(--font-mono);resize:none;background:#0000004d;border-radius:2px;outline:none;width:100%;padding:10px 14px;font-size:.72rem;transition:border-color .3s}.secure-form-terminal .form-input:focus{border-color:var(--red)}.secure-form-terminal .form-submit-btn{border:1px solid var(--red);color:var(--red);font-family:var(--font-mono);letter-spacing:.12em;cursor:pointer;transition:all .3s var(--ease), border-color .8s var(--ease), color .8s var(--ease);text-transform:uppercase;background:0 0;border-radius:2px;padding:12px;font-size:.72rem;font-weight:700}.secure-form-terminal .form-submit-btn:hover{background:var(--red);color:var(--white);box-shadow:0 0 15px var(--red-glow)}.secure-form-terminal .form-status{letter-spacing:.1em;color:var(--gray);text-align:center;border-top:1px dashed var(--border-2);text-transform:uppercase;padding-top:10px;font-size:.58rem}.metric-card{transform-style:preserve-3d;perspective:1000px;will-change:transform}.metric-card>*{transform:translateZ(15px)}@media (width<=1024px){.osint-body{grid-template-columns:1fr}.osint-img-wrap{height:280px}}@media (width<=768px){.dossier-grid{grid-template-columns:1fr}}.jp-about-section{background:var(--bg)}.jp-about-content{grid-template-columns:1.2fr 1fr;align-items:start;gap:clamp(2rem,5vw,4rem);max-width:1200px;display:grid}.jp-about-left{flex-direction:column;gap:1.2rem;display:flex}.jp-about-header{color:var(--white);letter-spacing:-.02em;font-family:Playfair Display,Georgia,Times New Roman,serif;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:700;line-height:1.1}.jp-about-text-vintage{color:var(--gray);border-left:2px solid var(--red);padding-left:18px;font-family:Playfair Display,Georgia,Times New Roman,serif;font-size:clamp(.95rem,1.2vw,1.15rem);font-style:italic;line-height:1.75}.jp-about-right{flex-direction:column;gap:1rem;display:flex}.jp-dossier-brief-wrap-vintage{background:#ba0c2f0a;border:1px dashed #ba0c2f33;border-radius:2px;align-items:flex-start;gap:18px;padding:16px;display:flex}.jp-dossier-img-vintage{-o-object-fit:cover;object-fit:cover;filter:grayscale(.6)contrast(1.05);border:1px solid #ba0c2f33;flex-shrink:0;width:110px;height:130px;transition:all .4s}.jp-dossier-img-vintage:hover{filter:grayscale(0)contrast();border-color:var(--red);box-shadow:0 0 15px #ba0c2f26}.jp-dossier-brief-text-vintage{font-family:var(--font-mono);color:var(--white);flex-direction:column;gap:2px;font-size:.65rem;line-height:1.5;display:flex}.brief-title-vintage{color:var(--red);letter-spacing:.14em;margin-bottom:2px;font-size:.72rem;font-weight:700}.brief-line-vintage{background:#ba0c2f40;height:1px;margin:4px 0}.brief-item-vintage{letter-spacing:.06em;text-transform:uppercase;color:var(--gray);font-size:.6rem}@media (width<=1024px){.jp-about-content{text-align:center;grid-template-columns:1fr}.jp-about-text-vintage{border-left:none;border-top:2px solid var(--red);padding-top:12px;padding-left:0}.jp-dossier-brief-wrap-vintage{justify-content:center;margin:0 auto}}@media (width<=768px){.jp-dossier-brief-wrap-vintage{text-align:center;flex-direction:column;align-items:center}}.skill-cluster.osint-dashboard-cluster{flex-direction:row;grid-column:span 3;align-items:stretch;gap:2rem;display:flex}.osint-cluster-left{flex-direction:column;flex:1;justify-content:flex-start;display:flex}.osint-cluster-right{flex-direction:column;flex:2.2;justify-content:center;display:flex}@media (width<=1024px){.skill-cluster.osint-dashboard-cluster{flex-direction:column;grid-column:span 2;gap:1.5rem}}@media (width<=768px){.skill-cluster.osint-dashboard-cluster{flex-direction:column;grid-column:span 1;gap:1rem}.osint-dash-panel-inline{height:650px}.osint-dash-body{flex-direction:column}.osint-dash-module-view{border-right:none;border-bottom:1px solid var(--border);flex:1.5}.osint-dash-sidebar{flex:1}}.osint-dash-panel-inline{background:var(--surface);border:1px solid var(--border);width:100%;height:400px;box-shadow:0 0 20px var(--primary-color-glow-05);flex-direction:column;margin-top:0;display:flex;position:relative;overflow:hidden}.osint-dash-header{border-bottom:1px solid var(--border);background:#ffffff05;justify-content:space-between;align-items:center;height:40px;padding:0 1rem;display:flex}.osint-dash-title{font-family:var(--font-mono);color:var(--primary-color);letter-spacing:.1em;font-size:.8rem}.osint-dash-status{font-family:var(--font-mono);color:var(--theme-black);opacity:.6;font-size:.65rem}.osint-dash-tabs{gap:.5rem;display:flex}.tab-btn{border:1px solid var(--border);color:var(--theme-black);font-family:var(--font-mono);cursor:pointer;letter-spacing:.05em;transition:all .2s var(--ease);background:0 0;padding:4px 10px;font-size:.65rem}.tab-btn:hover{border-color:var(--primary-color);color:var(--primary-color)}.tab-btn.active{background:var(--primary-color);border-color:var(--primary-color);color:var(--hero-bg)!important}.osint-dash-body{flex:1;height:calc(100% - 40px);display:flex;overflow:hidden}.osint-dash-module-view{border-right:1px solid var(--border);background:0 0;flex:2.2;position:relative;overflow-y:auto}.osint-dash-map-container{width:100%;height:100%;position:relative;overflow:hidden}.osint-dash-map-grid{background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);opacity:.3;background-size:40px 40px;position:absolute;inset:0}.osint-dash-scanner-line{background:var(--primary-color);opacity:.4;width:100%;height:1px;animation:6s linear infinite scanDown;position:absolute;top:0;left:0}@keyframes scanDown{0%{top:0}to{top:100%}}.osint-dash-node{cursor:pointer;z-index:10;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;transform:translate(-50%,-50%)}.node-core{background:var(--primary-color);border:1px solid var(--border);border-radius:0;width:8px;height:8px}.osint-dash-node:hover .node-core,.osint-dash-node.active .node-core{border-color:var(--primary-color);background:#fff}.node-label{font-family:var(--font-mono);color:var(--theme-black);letter-spacing:.05em;opacity:.7;pointer-events:none;margin-top:6px;font-size:.55rem}.osint-dash-node.active .node-label{opacity:1;color:var(--primary-color)}.osint-exif-view,.osint-blockchain-view{font-family:var(--font-mono);padding:1.5rem}.exif-selector{color:var(--theme-black);align-items:center;gap:1rem;margin-bottom:1.5rem;font-size:.7rem;display:flex}.exif-selector select{background:var(--surface);border:1px solid var(--border);color:var(--primary-color);font-family:var(--font-mono);outline:none;padding:4px 8px;font-size:.7rem}.blockchain-desc{color:var(--theme-black);letter-spacing:.05em;opacity:.8;margin-bottom:1.5rem;font-size:.7rem}.osint-table{border-collapse:collapse;text-align:left;width:100%;font-size:.68rem}.osint-table th,.osint-table td{border:1px solid var(--border);color:var(--theme-black);padding:8px 12px}.osint-table th{color:var(--primary-color);background:#ffffff05;font-weight:700}.osint-table tr:hover{background:#ffffff03}.osint-dash-sidebar{background:#0000001a;flex-direction:column;flex:1;padding:1.5rem;display:flex;overflow:hidden}.osint-dash-sidebar .module-title{font-family:var(--font-mono);color:var(--primary-color);letter-spacing:.05em;border-bottom:1px solid var(--border);margin-bottom:1rem;padding-bottom:.5rem;font-size:.75rem}.osint-dash-logs{font-family:var(--font-mono);color:var(--theme-black);opacity:.85;flex:1;padding-right:.5rem;font-size:.65rem;line-height:1.6;overflow-y:auto}.osint-dash-logs::-webkit-scrollbar{width:4px}.osint-dash-logs::-webkit-scrollbar-thumb{background:var(--primary-color-glow)}.log-line{word-wrap:break-word;margin-bottom:.5rem}
