@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-duration:initial;--tw-ease:initial}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-yellow-300:oklch(90.5% .182 98.111);--color-blue-300:oklch(80.9% .105 251.813);--spacing:.25rem;--text-xl:1.25rem;--text-xl--line-height:calc(1.75/1.25);--text-2xl:1.5rem;--text-2xl--line-height:calc(2/1.5);--text-5xl:3rem;--text-5xl--line-height:1;--text-6xl:3.75rem;--text-6xl--line-height:1;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--radius-lg:.5rem;--ease-in:cubic-bezier(.4,0,1,1);--ease-out:cubic-bezier(0,0,.2,1);--ease-in-out:cubic-bezier(.4,0,.2,1);--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}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-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);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}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.pointer-events-none{pointer-events:none}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.inset-0{inset:calc(var(--spacing)*0)}.top-0{top:calc(var(--spacing)*0)}.top-6{top:calc(var(--spacing)*6)}.top-8{top:calc(var(--spacing)*8)}.right-0{right:calc(var(--spacing)*0)}.right-6{right:calc(var(--spacing)*6)}.right-8{right:calc(var(--spacing)*8)}.bottom-0{bottom:calc(var(--spacing)*0)}.bottom-8{bottom:calc(var(--spacing)*8)}.left-0{left:calc(var(--spacing)*0)}.left-1\/2{left:50%}.left-8{left:calc(var(--spacing)*8)}.left-\[5\%\]{left:5%}.z-0{z-index:0}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.container{width:100%}@media(min-width:40rem){.container{max-width:40rem}}@media(min-width:48rem){.container{max-width:48rem}}@media(min-width:64rem){.container{max-width:64rem}}@media(min-width:80rem){.container{max-width:80rem}}@media(min-width:96rem){.container{max-width:96rem}}.mb-6{margin-bottom:calc(var(--spacing)*6)}.mb-8{margin-bottom:calc(var(--spacing)*8)}.mb-12{margin-bottom:calc(var(--spacing)*12)}.mb-20{margin-bottom:calc(var(--spacing)*20)}.flex{display:flex}.grid{display:grid}.h-4{height:calc(var(--spacing)*4)}.h-6{height:calc(var(--spacing)*6)}.h-\[1px\]{height:1px}.h-\[2px\]{height:2px}.h-\[3px\]{height:3px}.h-auto{height:auto}.h-full{height:100%}.min-h-screen{min-height:100vh}.w-1\/2{width:50%}.w-1\/3{width:33.3333%}.w-4{width:calc(var(--spacing)*4)}.w-6{width:calc(var(--spacing)*6)}.w-\[1px\]{width:1px}.w-\[2px\]{width:2px}.w-\[3px\]{width:3px}.w-full{width:100%}.-translate-x-1\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-1\/2{--tw-translate-x: 50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-y-3{--tw-translate-y:calc(var(--spacing)*3);translate:var(--tw-translate-x)var(--tw-translate-y)}.-rotate-45{rotate:-45deg}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.cursor-pointer{cursor:pointer}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-4{gap:calc(var(--spacing)*4)}.gap-8{gap:calc(var(--spacing)*8)}.overflow-hidden{overflow:hidden}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-none{--tw-border-style:none;border-style:none}.bg-transparent{background-color:#0000}.bg-none{background-image:none}.text-center{text-align:center}.text-5xl{font-size:var(--text-5xl);line-height:var(--tw-leading,var(--text-5xl--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading,var(--text-xl--line-height))}.text-\[12px\]{font-size:12px}.font-bold{--tw-font-weight:var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-normal{--tw-font-weight:var(--font-weight-normal);font-weight:var(--font-weight-normal)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.whitespace-nowrap{white-space:nowrap}.text-blue-300{color:var(--color-blue-300)}.text-yellow-300{color:var(--color-yellow-300)}.shadow-2xl{--tw-shadow:0 25px 50px -12px var(--tw-shadow-color,#00000040);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{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,)}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.ease-in{--tw-ease:var(--ease-in);transition-timing-function:var(--ease-in)}.ease-in-out{--tw-ease:var(--ease-in-out);transition-timing-function:var(--ease-in-out)}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media(hover:hover){.hover\:opacity-80:hover{opacity:.8}}@media(min-width:48rem){.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading,var(--text-2xl--line-height))}.md\:text-6xl{font-size:var(--text-6xl);line-height:var(--tw-leading,var(--text-6xl--line-height))}}@media(min-width:64rem){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}}*{box-sizing:border-box;margin:0;padding:0}body{color:#1a1a1a;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;font-size:16px;line-height:1.6}#root{width:100%;min-height:100vh}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem}@media(max-width:768px){.container{padding:0 1rem}.home-hero{padding-top:1.5rem}.home-hero-title{margin-bottom:12px;font-size:32px;line-height:1.15}.home-hero-subtitle{margin-top:.75rem;margin-bottom:1.25rem;font-size:16px}.home-hero-cta{flex-direction:column;gap:12px;width:100%}.home-hero-cta>button,.home-hero-cta>a{justify-content:center;width:100%}.home-cloud{width:100%!important;left:0!important}.home-cloud-outer{transform:translateY(15%)!important}.home-cloud-glow{display:none}}.page-container{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding-top:2rem;padding-bottom:8rem;display:flex}.grid{gap:2rem;width:100%;max-width:1200px;margin:0 auto;display:grid}[data-theme=dark]{--project-card-bg:#1b233d;--project-card-border:#ffffff2e;--project-card-shadow:#00000059 0px 12px 40px 0px;--project-card-shadow-hover:#00000080 0px 18px 48px 0px;--project-card-title:#fff;--project-card-desc:#aadef3cc;--project-card-tag-bg:#ffffff14;--project-card-tag-border:#ffffff2e;--project-card-tag-text:#ffffffe6;--project-card-icon:#1b233d;--project-card-top-gradient:linear-gradient(45deg,#049fbb 0%,#50f6ff 100%);--project-card-top-overlay:linear-gradient(180deg,#1018281a 0%,#101828a6 100%);--uiverse-card-bg:#07182e;--uiverse-link-bg:#c7f0ff14;--uiverse-link-bg-hover:#c7f0ff29;--uiverse-link-text:#c7f0ff;--uiverse-link-text-hover:#fff}[data-theme=light]{--project-card-bg:#f6fbff;--project-card-border:#0f172a1f;--project-card-shadow:#0f172a1f 0px 10px 28px 0px;--project-card-shadow-hover:#0f172a33 0px 16px 36px 0px;--project-card-title:#0f172a;--project-card-desc:#0f172ab3;--project-card-tag-bg:#0f172a0f;--project-card-tag-border:#0f172a1f;--project-card-tag-text:#0f172acc;--project-card-icon:#0f172a;--project-card-top-gradient:linear-gradient(45deg,#7dd3fc 0%,#e0f2fe 100%);--project-card-top-overlay:linear-gradient(180deg,#f8fafc0d 0%,#0f172a40 100%);--uiverse-card-bg:#f6fbff;--uiverse-link-bg:#0f172a14;--uiverse-link-bg-hover:#0f172a26;--uiverse-link-text:#0f172ad9;--uiverse-link-text-hover:#0f172a}.project-card{background:var(--project-card-bg);width:100%;box-shadow:var(--project-card-shadow);border:1px solid var(--project-card-border);border-radius:20px;flex-direction:column;min-height:100%;padding:6px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),box-shadow .3s;display:flex;overflow:hidden}.project-card:hover{box-shadow:var(--project-card-shadow-hover);transform:translateY(-6px)scale(1.02)}.project-card-top{background-image:var(--project-card-image);background-position:50%;background-size:cover;border-radius:16px;flex-direction:column;height:180px;display:flex;position:relative;overflow:hidden}.project-card-border{background:var(--project-card-bg);width:140px;height:30px;box-shadow:-10px -10px 0 0 var(--project-card-bg);z-index:1;border-bottom-right-radius:10px;position:relative;transform:skew(-40deg)}.project-card-border:before{content:"";width:15px;height:15px;box-shadow:-5px -5px 0 2px var(--project-card-bg);background:#fff0;border-top-left-radius:10px;position:absolute;top:0;right:-15px}.project-card-top:before{content:"";width:15px;height:15px;box-shadow:-5px -5px 0 2px var(--project-card-bg);z-index:1;background:#fff0;border-top-left-radius:15px;position:absolute;top:30px;left:0}.project-card-icons{z-index:2;justify-content:space-between;align-items:center;width:100%;height:30px;display:flex;position:absolute;top:0}.project-card-logo{min-width:30px;height:100%;color:var(--project-card-icon);letter-spacing:.5px;padding:7px 0 7px 14px;font-size:12px;font-weight:700}.project-card-social{gap:6px;height:100%;padding:8px 14px;display:flex}.project-card-dot{background:var(--project-card-icon);opacity:.8;border-radius:999px;width:8px;height:8px;transition:transform .2s,opacity .2s}.project-card:hover .project-card-dot{opacity:1;transform:translateY(-1px)}.project-card-bottom{flex-direction:column;flex:1;gap:10px;margin-top:12px;padding:12px 12px 16px;display:flex}.project-card-title{color:var(--project-card-title);letter-spacing:.5px;text-align:left;font-size:17px;font-weight:700;display:block}.project-card-description{color:var(--project-card-desc);-webkit-line-clamp:3;-webkit-box-orient:vertical;min-height:4.5em;font-size:13px;line-height:1.5;display:-webkit-box;overflow:hidden}.about-page{padding-top:2rem;padding-bottom:8rem}.about-main-card{max-width:860px;transition:none}.about-main-card:hover{box-shadow:var(--project-card-shadow);transform:none}.about-main-card-body{color:var(--project-card-title);align-items:flex-start;gap:24px;padding:20px;display:flex}.card{background:var(--uiverse-card-bg);border-radius:20px;place-content:center;place-items:center;width:190px;height:254px;display:flex;position:relative;overflow:hidden}.card h2{z-index:1;color:#fff;font-size:2em}.card:before{content:"";background-image:linear-gradient(#00b7ff,#ff30ff);width:100px;height:130%;transition:all .2s linear;animation:3s linear infinite rotBGimg;position:absolute}.card:after{content:"";background:var(--uiverse-card-bg);border-radius:15px;position:absolute;inset:5px}.about-image-card{flex-shrink:0}.about-image{z-index:1;object-fit:cover;border-radius:12px;width:calc(100% - 10px);height:calc(100% - 10px);position:relative}.about-main-text{flex-direction:column;gap:12px;display:flex}.about-main-title{letter-spacing:.4px;color:var(--project-card-title);font-size:22px;font-weight:700}.about-main-desc{color:var(--project-card-desc);font-size:14px;line-height:1.6}.about-main-links{flex-direction:row;align-items:center;gap:8px;margin-top:8px;display:flex}.about-main-icon-link{background:var(--uiverse-link-bg);width:40px;height:40px;color:var(--uiverse-link-text);border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:all .2s;display:inline-flex}.about-main-icon-link:hover{background:var(--uiverse-link-bg-hover);color:var(--uiverse-link-text-hover)}.about-email-expand{align-items:center;display:inline-flex;position:relative}.about-email-expand a{background:var(--uiverse-link-bg);width:40px;height:40px;color:var(--uiverse-link-text);z-index:2;border-radius:8px;justify-content:center;align-items:center;text-decoration:none;transition:all .2s;display:inline-flex;position:relative}.about-email-expand a:hover{background:var(--uiverse-link-bg-hover);color:var(--uiverse-link-text-hover)}.about-email-text{white-space:nowrap;color:var(--uiverse-link-text);opacity:0;pointer-events:none;font-size:13px;font-weight:500;transition:opacity .2s;position:absolute;left:50px}.about-email-expand:hover .about-email-text{opacity:1}@keyframes rotBGimg{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:720px){.about-main-card-body{flex-direction:column;align-items:flex-start}}.tool-card{flex-direction:column;justify-content:center;align-items:center;width:190px;height:254px;margin:0 auto}.tool-tabs{--tab-bg:var(--project-card-bg);--tab-text:var(--project-card-desc);background:var(--tab-bg);border:1px solid var(--project-card-border);box-shadow:var(--project-card-shadow);border-radius:1rem;width:fit-content;margin:0 auto 2rem;display:flex;position:relative;overflow:hidden}.tool-tabs input{display:none}.tool-tabs label{cursor:pointer;letter-spacing:.3px;min-width:110px;color:var(--tab-text);z-index:2;flex:1;justify-content:center;align-items:center;padding:.7rem 1.4rem;font-size:14px;font-weight:600;transition:color .3s ease-in-out;display:flex;position:relative}.tool-tabs label:hover{color:var(--project-card-title)}.tool-tabs input:checked+label{color:#fff}.tool-tabs-glider{z-index:1;background:var(--project-card-top-gradient);width:33.3333%;box-shadow:var(--project-card-shadow-hover);opacity:.9;border-radius:1rem;transition:transform .5s cubic-bezier(.37,1.95,.66,.56),background .4s ease-in-out,box-shadow .4s ease-in-out;position:absolute;top:0;bottom:0}#tool-tab-framework:checked~.tool-tabs-glider{transform:translate(0)}#tool-tab-language:checked~.tool-tabs-glider{transform:translate(100%)}#tool-tab-tool:checked~.tool-tabs-glider{transform:translate(200%)}@media(max-width:640px){.tool-tabs{width:100%;max-width:340px}.tool-tabs label{letter-spacing:.2px;white-space:nowrap;min-width:0;padding:.6rem .75rem;font-size:12px}}.tool-icon-wrapper{z-index:1;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:12px;display:flex;position:relative}.tool-icon-wrapper svg{width:100%;height:100%}.tool-name{z-index:1;color:var(--project-card-title);text-align:center;margin-bottom:4px;font-size:16px;font-weight:700;position:relative}.tool-category{z-index:1;color:var(--project-card-desc);text-align:center;font-size:12px;position:relative}@media(max-width:768px){.moon-toggle.moon-other{display:none}}.project-card-tags{flex-wrap:wrap;gap:8px;margin-top:auto;display:flex}.project-card-tag{color:var(--project-card-tag-text);background:var(--project-card-tag-bg);border:1px solid var(--project-card-tag-border);border-radius:999px;justify-content:center;align-items:center;padding:6px 12px;font-size:11px;display:inline-flex}.project-detail-card{max-width:1040px;margin:0 auto;padding:4px}.project-detail-top{height:320px}.project-detail-bottom{gap:16px;padding:10px 12px 14px}.project-detail-back{color:var(--project-card-title);cursor:pointer;z-index:3;background:0 0;border:none;border-radius:0;align-items:center;gap:6px;padding:2px 0;font-size:12px;font-weight:600;transition:opacity .2s,transform .2s;display:inline-flex;position:absolute;top:6px;left:14px}.project-detail-back:hover{opacity:.85;transform:translateY(-1px)}.project-detail-back-icon{min-width:30px;height:100%;color:var(--project-card-title);cursor:pointer;text-shadow:0 1px 6px #0006;background:0 0;border:none;justify-content:center;align-items:center;padding:7px 0 7px 14px;font-weight:700;transition:opacity .2s,transform .2s;display:flex}.project-detail-back-icon:hover{opacity:.8;transform:translate(-2px)}.project-detail-header{flex-direction:column;gap:12px;display:flex}.project-detail-meta{color:var(--project-card-desc);flex-wrap:wrap;gap:24px;font-size:14px;display:flex}.project-detail-label{letter-spacing:1px;color:var(--project-card-title);font-size:11px;font-weight:700}.project-detail-section{flex-direction:column;gap:10px;display:flex}.project-detail-title{color:var(--project-card-title);font-size:20px;font-weight:700}.project-detail-text{color:var(--project-card-desc);font-size:15px;line-height:1.6}.project-detail-tags{gap:10px}.project-detail-back-btn{border:1px solid var(--project-card-border);color:var(--project-card-title);cursor:pointer;background:0 0;border-radius:6px;align-items:center;gap:8px;margin-bottom:24px;padding:8px 12px;font-size:14px;font-weight:500;transition:all .3s;display:inline-flex}.project-detail-back-btn:hover{background:var(--project-card-bg);border-color:var(--project-card-title);transform:translate(-4px)}.project-detail-document{background:var(--project-card-bg);border:1px solid var(--project-card-border);border-radius:12px;flex-direction:column;gap:0;animation:.8s ease-out forwards cardEnter;display:flex;overflow:hidden}.project-detail-doc-header{border-bottom:1px solid var(--project-card-border);padding:32px}.project-detail-doc-title{color:var(--project-card-title);margin-bottom:12px;font-size:28px;font-weight:800;line-height:1.3}.project-detail-doc-subtitle{color:var(--project-card-desc);font-size:16px;font-style:italic}.project-detail-image-section{border-bottom:1px solid var(--project-card-border);flex-direction:column;gap:16px;padding:32px;display:flex}.project-detail-image-wrapper{background:var(--project-card-desc);border-radius:8px;width:100%;position:relative;overflow:hidden}.project-detail-image-wrapper img{object-fit:cover;width:100%;height:auto;display:block}.project-detail-image-caption{color:#fff;opacity:0;background:linear-gradient(#0000,#000c);margin:0;padding:12px 16px;font-size:14px;font-weight:600;transition:opacity .3s;position:absolute;bottom:0;left:0;right:0}.project-detail-image-wrapper:hover .project-detail-image-caption{opacity:1}.project-detail-text-section{border-bottom:1px solid var(--project-card-border);flex-direction:column;gap:16px;padding:32px;display:flex}.project-detail-section-title{color:var(--project-card-title);margin:0;font-size:22px;font-weight:700}.project-detail-section-text{color:var(--project-card-desc);margin:0;font-size:15px;line-height:1.7}.project-detail-section-text+.project-detail-section-text{margin-top:12px}.project-detail-meta-section{grid-template-columns:repeat(2,1fr);gap:24px;padding:32px;display:grid}.project-detail-meta-item{flex-direction:column;gap:8px;display:flex}.project-detail-meta-label{letter-spacing:1.5px;color:var(--project-card-title);text-transform:uppercase;margin:0;font-size:11px;font-weight:700}.project-detail-meta-value{color:var(--project-card-desc);margin:0;font-size:16px;font-weight:600}@media(max-width:768px){.project-detail-doc-header{padding:24px 20px}.project-detail-doc-title{font-size:22px}.project-detail-doc-subtitle{font-size:14px}.project-detail-image-section,.project-detail-text-section{padding:24px 20px}.project-detail-section-title{font-size:18px}.project-detail-section-text{font-size:14px}.project-detail-meta-section{grid-template-columns:1fr;gap:16px;padding:24px 20px}.project-detail-back-btn{padding:6px 10px;font-size:13px}}.project-detail-gallery{background:var(--project-card-bg);border-radius:12px 12px 0 0;width:100%;height:320px;position:relative;overflow:hidden}.gallery-image-wrapper{width:100%;height:100%;position:relative}.gallery-image{object-fit:cover;width:100%;height:100%;display:block}.gallery-caption{color:#fff;background:linear-gradient(#0000,#000c);padding:12px 16px;font-size:14px;font-weight:500;position:absolute;bottom:0;left:0;right:0}.gallery-controls{z-index:10;align-items:center;gap:12px;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%)}.gallery-nav-btn{color:#fff;cursor:pointer;background:#0009;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .3s;display:flex}.gallery-nav-btn:hover{background:#000c;border-color:#fff9;transform:scale(1.05)}.gallery-dots{gap:8px;display:flex}.gallery-dot{cursor:pointer;background:#fff6;border:none;border-radius:50%;width:8px;height:8px;transition:all .3s}.gallery-dot.active{background:#ffffffe6;border-radius:4px;width:24px}.gallery-dot:hover{background:#ffffffb3}.project-detail-back-icon-gallery{color:#fff;cursor:pointer;z-index:20;background:#00000080;border:1px solid #ffffff4d;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .3s;display:flex;position:absolute;top:12px;left:12px}.project-detail-back-icon-gallery:hover{background:#000000b3;border-color:#fff9;transform:scale(1.05)}@media(max-width:768px){.gallery-controls{gap:8px;bottom:12px}.gallery-nav-btn{width:32px;height:32px;font-size:14px}.gallery-dot{width:6px;height:6px}.gallery-dot.active{width:20px}.project-detail-back-icon-gallery{width:32px;height:32px;top:10px;left:10px}.grid{grid-template-columns:1fr;gap:1.5rem}.project-card-top{height:165px}.project-card-bottom{padding:10px 10px 14px}.project-card-title{font-size:16px}.project-card-description{min-height:4.5em;font-size:12px}.project-detail-top{height:220px}.project-detail-back{padding:4px 8px;left:12px}.project-detail-title{font-size:18px}.project-detail-text{font-size:14px}}@keyframes slideDown{0%{opacity:0;margin-top:-6px}to{opacity:1;margin-top:6px}}@keyframes slideUp{0%{opacity:1;margin-top:6px}to{opacity:0;margin-top:-6px}}@keyframes cloudEnterTop{0%{opacity:0;transform:translateY(calc(20% + 100px))}to{opacity:1;transform:translateY(20%)}}@keyframes cloudExitTop{0%{opacity:1;transform:translateY(20%)}to{opacity:0;transform:translateY(calc(20% + 100px))}}@keyframes cloudEnterMiddle{0%{opacity:0;transform:translateY(calc(35% + 100px))}to{opacity:1;transform:translateY(35%)}}@keyframes cloudExitMiddle{0%{opacity:1;transform:translateY(35%)}to{opacity:0;transform:translateY(calc(35% + 100px))}}@keyframes cloudEnterOuter{0%{opacity:0;transform:translateY(calc(60% + 100px))}to{opacity:1;transform:translateY(60%)}}@keyframes cloudExitOuter{0%{opacity:1;transform:translateY(60%)}to{opacity:0;transform:translateY(calc(60% + 100px))}}@keyframes cloudShiftTop{0%,to{transform:translateY(20%)translate(0)}50%{transform:translateY(20%)translate(-20px)}}@keyframes cloudShiftMiddle{0%,to{transform:translateY(35%)translate(0)}50%{transform:translateY(35%)translate(20px)}}@keyframes cloudShiftOuter{0%,to{transform:translateY(60%)translate(0)}50%{transform:translateY(60%)translate(-20px)}}@keyframes cloudExitFade{0%{opacity:1}to{opacity:0}}@keyframes moonEnter{0%{opacity:0;transform:translate(200px)translateY(-100px)scale(.5)rotate(45deg)}to{opacity:.85;transform:translate(0)translateY(0)scale(1)rotate(0)}}@keyframes moonExit{0%{opacity:.85;transform:translate(0)translateY(0)scale(1)rotate(0)}to{opacity:0;transform:translate(-100px)translateY(100px)scale(.5)rotate(-45deg)}}@keyframes sunEnter{0%{opacity:0;transform:translate(-200px)translateY(-100px)scale(.5)rotate(-45deg)}to{opacity:.85;transform:translate(0)translateY(0)scale(1)rotate(0)}}@keyframes sunExit{0%{opacity:.85;transform:translate(0)translateY(0)scale(1)rotate(0)}to{opacity:0;transform:translate(100px)translateY(100px)scale(.5)rotate(45deg)}}@keyframes backgroundToNight{0%{background-color:#d9f3ff}30%{background-color:#ffc97d}60%{background-color:#7d4f3f}to{background-color:#2a3e5a}}@keyframes backgroundToDay{0%{background-color:#2a3e5a}30%{background-color:#7d4f3f}60%{background-color:#ffc97d}to{background-color:#d9f3ff}}@keyframes cardEnter{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes cardExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}@keyframes textEnter{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes textExit{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-30px)}}.btn-gradient-glow{--cyan:#22d3ee;letter-spacing:.06em;border:2px solid var(--cyan);color:var(--cyan);background:linear-gradient(90deg,#22d3ee1a 1%,#0000 40% 60%,#22d3ee1a);border-radius:.6em;padding:.7em 2.7em;font-family:inherit;font-size:15px;line-height:1.4em;transition:all .3s;position:relative;overflow:hidden;box-shadow:inset 0 0 10px #22d3ee66,0 0 9px 3px #22d3ee1a}.btn-gradient-glow:hover{color:#06d9ff;box-shadow:inset 0 0 10px #22d3ee99,0 0 9px 3px #22d3ee33}.btn-gradient-glow:before{content:"";background:linear-gradient(90deg,#0000 1%,#22d3ee1a 40% 60%,#0000);width:4em;height:100%;transition:transform .4s ease-in-out;position:absolute;top:0;left:-4em}.btn-gradient-glow:hover:before{transform:translate(15em)}.type--C{--line_color:#00135c;--back_color:#defffa}.type--C-light{--line_color:#ffffffb3;--back_color:#ffffff14}.button{z-index:0;width:240px;height:56px;color:var(--line_color);letter-spacing:2px;justify-content:center;align-items:center;font-size:14px;font-weight:700;text-decoration:none;transition:all .3s;display:inline-flex;position:relative}.button__text{justify-content:center;align-items:center;width:100%;height:100%;display:flex}.button:before,.button:after,.button__text:before,.button__text:after{content:"";background:var(--line_color);border-radius:2px;height:3px;transition:all .5s;position:absolute}.button:before{width:calc(100% - 128px);top:0;left:54px}.button:after{width:8px;top:0;right:54px}.button__text:before{width:calc(100% - 128px);bottom:0;right:54px}.button__text:after{width:8px;bottom:0;left:54px}.button__line{width:56px;height:100%;position:absolute;top:0;overflow:hidden}.button__line:before{content:"";box-sizing:border-box;border:solid 3px var(--line_color);border-radius:300px;width:150%;height:100%;position:absolute;top:0}.button__line:first-child,.button__line:first-child:before{left:0}.button__line:nth-child(2),.button__line:nth-child(2):before{right:0}.button:hover{letter-spacing:6px}.button:hover:before,.button:hover .button__text:before{width:8px}.button:hover:after,.button:hover .button__text:after{width:calc(100% - 128px)}.button__drow1,.button__drow2{z-index:-1;transform-origin:16px 16px;border-radius:16px;position:absolute}.button__drow1{width:32px;height:0;top:-16px;left:40px;transform:rotate(30deg)}.button__drow2{width:32px;height:0;top:44px;left:77px;transform:rotate(-127deg)}.button__drow1:before,.button__drow1:after,.button__drow2:before,.button__drow2:after{content:"";position:absolute}.button__drow1:before{transform-origin:16px 16px;border-radius:16px;width:0;height:32px;bottom:0;left:0;transform:rotate(-60deg)}.button__drow1:after{transform-origin:16px 16px;border-radius:16px;width:0;height:32px;top:-10px;left:45px;transform:rotate(69deg)}.button__drow2:before{transform-origin:16px 16px;border-radius:16px;width:0;height:32px;bottom:0;left:0;transform:rotate(-146deg)}.button__drow2:after{transform-origin:16px 16px;border-radius:16px;width:0;height:32px;bottom:26px;left:-40px;transform:rotate(-262deg)}.button__drow1,.button__drow1:before,.button__drow1:after,.button__drow2,.button__drow2:before,.button__drow2:after{background:var(--back_color)}.button:hover .button__drow1{animation:60ms ease-in forwards drow1}.button:hover .button__drow1:before{animation:80ms linear 60ms forwards drow2}.button:hover .button__drow1:after{animation:30ms linear .14s forwards drow3}.button:hover .button__drow2{animation:60ms linear .2s forwards drow4}.button:hover .button__drow2:before{animation:30ms linear .26s forwards drow3}.button:hover .button__drow2:after{animation:60ms linear .32s forwards drow5}@keyframes drow1{0%{height:0}to{height:100px}}@keyframes drow2{0%{opacity:0;width:0}10%{opacity:0}11%{opacity:1}to{width:120px}}@keyframes drow3{0%{width:0}to{width:80px}}@keyframes drow4{0%{height:0}to{height:120px}}@keyframes drow5{0%{width:0}to{width:124px}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}
