1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{7355:function(e,t,s){Promise.resolve().then(s.t.bind(s,5878,23)),Promise.resolve().then(s.t.bind(s,2972,23)),Promise.resolve().then(s.bind(s,1523)),Promise.resolve().then(s.bind(s,49)),Promise.resolve().then(s.bind(s,9430)),Promise.resolve().then(s.bind(s,5208)),Promise.resolve().then(s.bind(s,7324)),Promise.resolve().then(s.bind(s,9751)),Promise.resolve().then(s.bind(s,3495)),Promise.resolve().then(s.bind(s,7529)),Promise.resolve().then(s.bind(s,8484))},9430:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return n}});var i=s(7437),r=s(7101),a=s(2265);function n(){return(0,a.useEffect)(()=>{let e=null,t=[];return async function(){(await (0,r.o)({namespace:"30min"}))("ui",{hideEventTypeDetails:!1,layout:"month_view"});let s=()=>{let e=document.querySelector('iframe[data-cal-namespace="30min"]');if(e)try{var t;let s=e.contentDocument||(null===(t=e.contentWindow)||void 0===t?void 0:t.document);if(s){let e=s.getElementById("hide-scrollbar-style");e||((e=s.createElement("style")).id="hide-scrollbar-style",e.textContent='\n * {\n scrollbar-width: none !important;\n -ms-overflow-style: none !important;\n }\n *::-webkit-scrollbar {\n display: none !important;\n width: 0 !important;\n height: 0 !important;\n }\n [class*="scrollbar"],\n [class*="Scrollbar"],\n [role="scrollbar"] {\n display: none !important;\n visibility: hidden !important;\n }\n ',s.head.appendChild(e))}}catch(e){}};s(),t.push(setTimeout(s,1e3)),t.push(setTimeout(s,2e3)),t.push(setTimeout(s,3e3)),e=new MutationObserver(()=>{s()});let i=document.querySelector(".calcom-wrapper");i&&e.observe(i,{childList:!0,subtree:!0})}(),()=>{e&&e.disconnect(),t.forEach(clearTimeout)}},[]),(0,i.jsx)("div",{className:"calcom-wrapper",style:{width:"100%",height:"100%"},children:(0,i.jsx)(r.Z,{namespace:"30min",calLink:"seniordev-kymyxr/30min",style:{width:"100%",height:"100%",overflow:"hidden",display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",borderRadius:"20px"},config:{layout:"month_view"}})})}},5208:function(e,t,s){"use strict";var i=s(7437),r=s(3448),a=s(8614),n=s(9653),o=s(2265);t.default=e=>{let{text:t,className:s,variant:l,characterDelay:c=.03,delay:d=0,yOffset:u=8,animateByCharacter:m=!1}=e,p=l||{hidden:{y:u,opacity:0,filter:"blur(8px)"},visible:{y:-u,opacity:1,filter:"blur(0px)"}},h=(0,o.useMemo)(()=>Array.from(t),[t]);return m?(0,i.jsx)("div",{className:"flex",children:(0,i.jsx)(a.M,{children:h.map((e,t)=>(0,i.jsx)(n.E.span,{initial:"hidden",animate:"visible",exit:"hidden",variants:p,transition:{yoyo:1/0,delay:d+t*c,ease:"easeOut"},className:(0,r.cn)("inline-block",s),style:{width:""===e.trim()?"0.2em":"auto"},children:e},t))})}):(0,i.jsx)("div",{className:"flex",children:(0,i.jsx)(a.M,{children:(0,i.jsx)(n.E.span,{initial:"hidden",animate:"visible",exit:"hidden",variants:p,transition:{yoyo:1/0,delay:d,ease:"easeOut"},className:(0,r.cn)("inline-block",s),children:t})})})}},7324:function(e,t,s){"use strict";s.d(t,{default:function(){return l}});var i=s(7437),r=s(2265),a=s(3433),n=s(8614),o=s(9653);function l(e){let{children:t,className:s,variant:l,duration:c=.4,delay:d=0,yOffset:u=6,inView:m=!1,inViewMargin:p="-50px",blur:h="6px"}=e,f=(0,r.useRef)(null),x=(0,a.Y)(f,{once:!0,margin:p});return(0,i.jsx)(n.M,{children:(0,i.jsx)(o.E.div,{ref:f,initial:"hidden",animate:!m||x?"visible":"hidden",exit:"hidden",variants:l||{hidden:{y:u,opacity:0,filter:"blur(".concat(h,")")},visible:{y:-u,opacity:1,filter:"blur(0px)"}},transition:{delay:.04+d,duration:c,ease:"easeOut"},className:s,children:t})})}},9751:function(e,t,s){"use strict";s.d(t,{ProjectsSection:function(){return w}});var i=s(7437),r=s(2265),a=s(7324),n=s(9174),o=s(9820),l=s(3448),c=s(3145),d=s(7648),u=s(236);function m(e){let{title:t,href:s,description:r,dates:a,tags:m,image:p,video:h,links:f,className:x}=e;return(0,i.jsxs)(o.Zb,{className:"flex flex-col overflow-hidden border hover:shadow-lg transition-all duration-300 ease-out h-full",children:[(0,i.jsx)(d.default,{href:s||"#",target:"_blank",rel:"noopener noreferrer",className:(0,l.cn)("block cursor-pointer relative overflow-hidden bg-muted",x),children:h?(0,i.jsx)("video",{src:h,autoPlay:!0,loop:!0,muted:!0,playsInl
1ine:!0,className:"w-full h-48 object-cover transition-transform duration-300 hover:scale-105"}):p?(0,i.jsx)("div",{className:"relative w-full h-48 overflow-hidden",children:(0,i.jsx)(c.default,{src:p,alt:"".concat(t," screenshot"),fill:!0,className:"object-cover transition-transform duration-300 hover:scale-105",loading:"lazy",sizes:"(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"})}):(0,i.jsx)("div",{className:"w-full h-48 bg-gradient-to-br from-muted to-muted/50 flex items-center justify-center",children:(0,i.jsxs)("div",{className:"text-center p-4",children:[(0,i.jsx)("svg",{className:"w-12 h-12 mx-auto text-muted-foreground/50 mb-2",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,i.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,i.jsx)("p",{className:"text-xs text-muted-foreground/70",children:"No screenshot available"})]})})}),(0,i.jsx)(o.Ol,{className:"px-2",children:(0,i.jsxs)("div",{className:"space-y-1",children:[(0,i.jsx)(o.ll,{className:"mt-1 text-base",children:t}),(0,i.jsx)(u.UG,{className:"prose max-w-full text-pretty font-sans text-xs text-muted-foreground dark:prose-invert",children:r})]})}),(0,i.jsx)(o.aY,{className:"mt-auto flex flex-col px-2",children:m&&m.length>0&&(0,i.jsx)("div",{className:"mt-2 flex flex-wrap gap-1",children:null==m?void 0:m.map(e=>(0,i.jsx)(n.C,{className:"px-1 py-0 text-[10px]",variant:"secondary",children:e},e))})}),(0,i.jsx)(o.eW,{className:"px-2 pb-2",children:f&&f.length>0&&(0,i.jsx)("div",{className:"flex flex-row flex-wrap items-start gap-1",children:null==f?void 0:f.map((e,s)=>(0,i.jsx)(d.default,{href:null==e?void 0:e.href,target:"_blank",rel:"noopener noreferrer","aria-label":"".concat(e.type," for ").concat(t),children:(0,i.jsxs)(n.C,{className:"flex gap-2 px-2 py-1 text-[10px]",children:[e.icon,e.type]})},s))})})]})}var p=s(279),h=s(3247),f=s(2489),x=s(2381);function g(e){let{projects:t,onFilteredProjectsChange:s}=e,[a,o]=(0,r.useState)(""),[c,d]=(0,r.useState)([]),u=(0,r.useMemo)(()=>{let e=new Set;return t.forEach(t=>{t.technologies.forEach(t=>e.add(t))}),Array.from(e).sort()},[t]),m=(0,r.useMemo)(()=>t.filter(e=>{let t=""===a||e.title.toLowerCase().includes(a.toLowerCase())||e.description.toLowerCase().includes(a.toLowerCase()),s=0===c.length||c.every(t=>e.technologies.includes(t));return t&&s}),[t,a,c]);r.useEffect(()=>{s(m)},[m,s]);let g=e=>{d(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},v=()=>{o(""),d([])},y=""!==a||c.length>0;return(0,i.jsxs)("div",{className:"space-y-4 w-full max-w-[800px] mx-auto",children:[(0,i.jsxs)("div",{className:"relative",children:[(0,i.jsx)(h.Z,{className:"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-muted-foreground"}),(0,i.jsx)(p.I,{type:"text",placeholder:"Search projects...",value:a,onChange:e=>o(e.target.value),className:"pl-10 pr-10","aria-label":"Search projects"}),a&&(0,i.jsx)(x.z,{variant:"ghost",size:"icon",className:"absolute right-1 top-1/2 transform -translate-y-1/2 h-7 w-7",onClick:()=>o(""),"aria-label":"Clear search",children:(0,i.jsx)(f.Z,{className:"h-4 w-4"})})]}),(0,i.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,i.jsx)("span",{className:"text-sm text-muted-foreground",children:"Filter by tech:"}),u.map(e=>(0,i.jsx)(n.C,{variant:c.includes(e)?"default":"secondary",className:(0,l.cn)("cursor-pointer transition-all",c.includes(e)&&"ring-2 ring-ring"),onClick:()=>g(e),role:"button",tabIndex:0,onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),g(e))},"aria-pressed":c.includes(e),children:e},e)),y&&(0,i.jsxs)(x.z,{variant:"ghost",size:"sm",onClick:v,className:"ml-auto","aria-label":"Clear all filters",children:[(0,i.jsx)(f.Z,{className:"h-4 w-4 mr-1"}),"Clear"]})]}),0===m.length&&y&&(0,i.jsxs)("div",{className:"text-center py-8 text-muted-foreground",children:[(0,i.jsx)("p",{children:"No projects found matching your filters."}),(0,i.jsx)(x.z,{variant:"link",onClick:v,className:"mt-2",children:"Clear filters"})]})]})}var v=s(9202),y=s(9345);let b=e=>(0,i.jsx)(v.Z,{...e}),j={name:"Morimura Din",initials:"MD",url:"https://github.com/morimura07",location:"Japan",locationLink:"https://www.google.com/maps/place/japan",description:"Developer from Japan working across blockchain, AI, and the web. I focus on dependable engineering, clear handoffs, and interfaces that stay out of the way.",summary:"I'm Morimura Din, a developer from Japan who likes building things that are solid and easy to use. Most of my work sits at the intersection of blockchain, AI, and full-stack web apps. I enjoy pairing careful systems work smart contracts, infra, security reviews with the product side: clean flows, fast feedback, and documentation teams can actually use. I move between exploratory prototyping and production hardening so releases stay predictable.",avatarUrl:"/Mori.png",resumeUrl:"https://flowcv.com/resume/sdsgfflbfrdl",skills:["Blockchain","Solidity","Web3","Ethereum","Smart Contracts","AI/ML","Python","React","Next.js","TypeScript","JavaScript","Node.js","TailwindCSS","Git","Docker","Smart City IoT","Zero-Knowledge Proofs","DeFi","dApps","Full Stack Development"],skillCategories:[{name:"Languages",skills:["JavaScript","TypeScript","C/C++","Java","Python","C#"],level:95,color:"hsl(221, 83%, 53%)"},{name:"Lib/Frameworks",skills:["React/Next","Flutter","ReactNative","Angular","Vue","MUI/AntD/ReactBootstrap","TailwindCSS/Scss","ThreeJS","RadixUI/ChakraUI/Element","Node","NestJS","ExpressJS","Django"],level:90,color:"hsl(217, 91%, 60%)"},{name:"Blockchain",skills:["Ethereum","SUI","Solana","XRP","Cosmos","Polkadot","Polygon","Solidity","Move","Rust","Go","C++","JavaScript","ethers.js","Web3.js","Hardhat","Anchor","Haskell"],level:92,color:"hsl(142, 76%, 36%)"},{name:"AI/ML",skills:["Python","R","Algorithm & DataStructure","Deep learning","Neural learning","Model optimization","Speech To Speech","Data analytics","BigData","Data warehouse","Brain imitation","Pytorch","Tensorflow","Keras","Scikit","Image & video processing"],level:88,color:"hsl(280, 100%, 70%)"}
1,{name:"Infrastructure",skills:["Cloud","AWS EC2","ECS/EKS","Architecture Design","DevOps","Docker","Kubernetes"],level:85,color:"hsl(24, 95%, 53%)"}],navbar:[{href:"/",icon:s(4938).Z,label:"Home"},{href:"https://flowcv.com/resume/sdsgfflbfrdl",icon:b,label:"Resume"}],contact:{email:"[email protected]",tel:"",social:{GitHub:{name:"GitHub",url:"https://github.com/morimura07",icon:e=>(0,i.jsx)("svg",{viewBox:"0 0 438.549 438.549",...e,children:(0,i.jsx)("path",{fill:"currentColor",d:"M409.132 114.573c-19.608-33.596-46.205-60.194-79.798-79.8-33.598-19.607-70.277-29.408-110.063-29.408-39.781 0-76.472 9.804-110.063 29.408-33.596 19.605-60.192 46.204-79.8 79.8C9.803 148.168 0 184.854 0 224.63c0 47.78 13.94 90.745 41.827 128.906 27.884 38.164 63.906 64.572 108.063 79.227 5.14.954 8.945.283 11.419-1.996 2.475-2.282 3.711-5.14 3.711-8.562 0-.571-.049-5.708-.144-15.417a2549.81 2549.81 0 01-.144-25.406l-6.567 1.136c-4.187.767-9.469 1.092-15.846 1-6.374-.089-12.991-.757-19.842-1.999-6.854-1.231-13.229-4.086-19.13-8.559-5.898-4.473-10.085-10.328-12.56-17.556l-2.855-6.57c-1.903-4.374-4.899-9.233-8.992-14.559-4.093-5.331-8.232-8.945-12.419-10.848l-1.999-1.431c-1.332-.951-2.568-2.098-3.711-3.429-1.142-1.331-1.997-2.663-2.568-3.997-.572-1.335-.098-2.43 1.427-3.289 1.525-.859 4.281-1.276 8.28-1.276l5.708.853c3.807.763 8.516 3.042 14.133 6.851 5.614 3.806 10.229 8.754 13.846 14.842 4.38 7.806 9.657 13.754 15.846 17.847 6.184 4.093 12.419 6.136 18.699 6.136 6.28 0 11.704-.476 16.274-1.423 4.565-.952 8.848-2.383 12.847-4.285 1.713-12.758 6.377-22.559 13.988-29.41-10.848-1.14-20.601-2.857-29.264-5.14-8.658-2.286-17.605-5.996-26.835-11.14-9.235-5.137-16.896-11.516-22.985-19.126-6.09-7.614-11.088-17.61-14.987-29.979-3.901-12.374-5.852-26.648-5.852-42.826 0-23.035 7.52-42.637 22.557-58.817-7.044-17.318-6.379-36.732 1.997-58.24 5.52-1.715 13.706-.428 24.554 3.853 10.85 4.283 18.794 7.952 23.84 10.994 5.046 3.041 9.089 5.618 12.135 7.708 17.705-4.947 35.976-7.421 54.818-7.421s37.117 2.474 54.823 7.421l10.849-6.849c7.419-4.57 16.18-8.758 26.262-12.565 10.088-3.805 17.802-4.853 23.134-3.138 8.562 21.509 9.325 40.922 2.279 58.24 15.036 16.18 22.559 35.787 22.559 58.817 0 16.178-1.958 30.497-5.853 42.966-3.9 12.471-8.941 22.457-15.125 29.979-6.191 7.521-13.901 13.85-23.131 18.986-9.232 5.14-18.182 8.85-26.84 11.136-8.662 2.286-18.415 4.004-29.263 5.146 9.894 8.562 14.842 22.077 14.842 40.539v60.237c0 3.422 1.19 6.279 3.572 8.562 2.379 2.279 6.136 2.95 11.276 1.995 44.163-14.653 80.185-41.062 108.068-79.226 27.88-38.161 41.825-81.126 41.825-128.906-.01-39.771-9.818-76.454-29.414-110.049z"})}),navbar:!0},email:{name:"Send Email",url:"mailto:[email protected]",icon:e=>(0,i.jsx)(y.Z,{...e}),navbar:!0}}},education:[{school:"Kobe University",href:"https://www.kobe-u.ac.jp/en/",degree:"Bachelor of Science in Computer Science",logoUrl:"/iiitsonepat.png",start:"09/2010",end:"06/2014",description:"Relevant coursework: Software Development, Data Structures, Algorithms, Database Systems, Web Development, Programming Languages (Java, Python, C++)"}],work:[],projects:[{title:"Griffin AI",href:"https://www.griffinai.io/",dates:"2024",description:"A no-code AI agent builder for decentralized finance (DeFi), enabling users to create, deploy, and scale autonomous AI agents for crypto finance across multiple blockchains.",technologies:["AI/ML","DeFi","Blockchain","No-Code Platforms"],image:"/projects/griffinai.png",video:"",links:[{type:"Website",href:"https://www.griffinai.io/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"OneID",href:"https://www.oneid.xyz/",dates:"2024",description:"A universal digital identity solution providing users with a secure and unified identity across various digital platforms, ensuring seamless and privacy-focused identity management.",technologies:["Digital Identity","Security","Authentication","Web3"],image:"/projects/oneid.png",video:"",links:[{type:"Website",href:"https://www.oneid.xyz/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"PIN AI",href:"https://www.pinai.com/",dates:"2024",description:"The first personal AI network that leverages real-time transcription and personal data to provide personalized AI assistance, enhancing user interactions and productivity.",technologies:["AI/ML","Personalization","Data Integration","Real-Time Processing"],image:"/projects/pinai.png",video:"",links:[{type:"Website",href:"https://www.pinai.com/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"xStocks",href:"https://xstocks.com/",dates:"2024",description:"A platform offering tokenized stocks and ETFs, allowing users to invest in the stock market on-chain with 24/7 availability, no commissions, and DeFi compatibility.",technologies:["Tokenization","DeFi","Blockchain","Financial Services"],image:"/projects/xstocks.png",video:"",links:[{type:"Website",href:"https://xstocks.com/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"BitGo",href:"https://www.bitgo.com/",dates:"2024",description:"A digital asset infrastru
1cture company providing secure wallet solutions, custody services, and financial services for institutional investors in the cryptocurrency space.",technologies:["Blockchain","Digital Asset Custody","Security","Financial Services"],image:"/projects/bitgo.png",video:"",links:[{type:"Website",href:"https://www.bitgo.com/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"BZE Coin",href:"https://getbze.com/",dates:"2024",description:"Part of the BeeZee Blockchain, a simplified DeFi platform aiming to make decentralized finance accessible and user-friendly for a broader audience.",technologies:["Blockchain","DeFi","Cryptocurrency","User Experience"],image:"/projects/bze.png",video:"",links:[{type:"Website",href:"https://getbze.com/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"Immutable",href:"https://www.immutable.com/",dates:"2024",description:"Next-generation infrastructure to maximize player growth, engagement, and revenue for game developers, focusing on integrating blockchain technology into gaming.",technologies:["Blockchain Gaming","Infrastructure","Game Development","Web3"],image:"/projects/immutable.png",video:"",links:[{type:"Website",href:"https://www.immutable.com/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"Magic",href:"https://magic.link/",dates:"2024",description:"A plug-and-play authentication solution enabling developers to integrate passwordless login methods into their applications securely and efficiently.",technologies:["Authentication","Security","Developer Tools","Web3"],image:"/projects/magic.png",video:"",links:[{type:"Website",href:"https://magic.link/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"Axie Infinity",href:"https://axieinfinity.com/",dates:"2024",description:"A blockchain-based game where players collect, breed, and battle fantasy creatures called Axies, earning cryptocurrency through gameplay with a play-to-earn model.",technologies:["Blockchain Gaming","NFTs","Play-to-Earn","Web3"],image:"/projects/axieinfinity.png",video:"",links:[{type:"Website",href:"https://axieinfinity.com/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"Privy",href:"https://www.privy.io/",dates:"2024",description:"Tools for developers to integrate user authentication and data management into their applications, focusing on privacy, security, and data ownership.",technologies:["Authentication","Privacy","Security","Web3"],image:"/projects/privy.png",video:"",links:[{type:"Website",href:"https://www.privy.io/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"GoPlus Labs",href:"http://gopluslabs.io/",dates:"2024",description:"Security services for the Web3 ecosystem, providing real-time, dynamic, and automated security detection for blockchain projects and smart contracts.",technologies:["Blockchain Security","Web3","Automation","Smart Contracts"],image:"/projects/gopluslabs.png",video:"",links:[{type:"Website",href:"http://gopluslabs.io/",
1icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"ShakeYos AI",href:"http://shakeyos.ai/",dates:"2024",description:"An AI-driven platform offering personalized recommendations and insights, enhancing user experiences across various applications and industries.",technologies:["AI/ML","Personalization","Data Analysis","Machine Learning"],image:"/projects/shakeyos.png",video:"",links:[{type:"Website",href:"http://shakeyos.ai/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"AntiShifty",href:"https://antishifty.com/",dates:"2024",description:"Tools to detect and prevent fraudulent activities in online transactions, ensuring secure and trustworthy digital interactions for businesses and consumers.",technologies:["Fraud Detection","Security","E-commerce","Digital Transactions"],image:"/projects/antishifty.png",video:"",links:[{type:"Website",href:"https://antishifty.com/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"DarkCrypto Finance",href:"https://www.darkcrypto.finance/",dates:"2024",description:"A decentralized finance platform offering various financial services, including staking, farming, and liquidity provision, aiming to provide sustainable yields.",technologies:["DeFi","Staking","Yield Farming","Liquidity Provision"],image:"/projects/darkcrypto.png",video:"",links:[{type:"Website",href:"https://www.darkcrypto.finance/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"WeConnectU",href:"https://weconnectu.io/",dates:"2024",description:"A comprehensive property management platform streamlining operations for property managers and enhancing tenant experiences through digital solutions.",technologies:["Property Management","SaaS","Digital Solutions","Full Stack"],image:"/projects/weconnectu.png",video:"",links:[{type:"Website",href:"https://weconnectu.io/",icon:(0,i.jsx)(b,{className:"size-3"})}]},{title:"StohnCoin",href:"https://stohncoin.org/",dates:"2024",description:"A cryptocurrency project focused on providing secure and efficient digital transactions, aiming to foster adoption through user-friendly features and robust security measures.",technologies:["Cryptocurrency","Blockchain","Digital Transactions","DeFi"],image:"/projects/stohncoin.png",video:"",links:[{type:"Website",href:"https://stohncoin.org/",icon:(0,i.jsx)(b,{className:"size-3"})}]}]};function w(){let[e,t]=(0,r.useState)(j.projects),s=(0,r.useCallback)(e=>{t(e)},[]);return(0,i.jsx)("section",{id:"projects","aria-label":"Projects",children:(0,i.jsxs)("div",{className:"space-y-10 w-full py-12",children:[(0,i.jsx)(a.default,{delay:.44,children:(0,i.jsxs)("div",{className:"grid gap-5 lg:grid-cols-[1.05fr,0.95fr] items-start",children:[(0,i.jsxs)("div",{className:"rounded-2xl border border-border/70 bg-card/80 p-6 shadow-sm backdrop-blur-sm",children:[(0,i.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,i.jsxs)("div",{className:"space-y-2",children:[(0,i.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-full bg-foreground text-background px-3 py-1 text-xs uppercase tracking-wide shadow-sm",children:[(0,i.jsx)("span",{className:"w-2 h-2 rounded-full bg-primary","aria-hidden":!0}),"Projects"]}),(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"Introduction"}),(0,i.jsx)("h2",{className:"text-3xl font-bold tracking-tight sm:text-4xl",children:"Structured delivery, steady launches"}),(0,i.jsx)("p",{className:"mt-2 text-sm text-muted-foreground max-w-2xl",children:"Product builds plus platform work with predictable releases, clear ownership, and stable interfaces even when the stack is complex."})]})]}),(0,i.jsxs)("div",{className:"text-right space-y-2",children:[(0,i.jsx)("p",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"Shipped + supported"}),(0,i.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-xl border border-border/70 bg-muted/50 px-3 py-2",children:[(0,i.jsxs)("span",{className:"text-2xl font-bold leading-none",children:[j.projects.length,"+"]}),(0,i.jsx)("span",{className:"text-xs text-muted-foreground leading-tight",children:"builds"})]})]})]}),(0,i.jsx)("div",{className:"grid gap-3 sm:grid-cols-3 mt-5",children:[{title:"Product delivery",body:"Tight loops with design and QA to keep releases predictable."},{title:"Platforms",body:"Reusable modules, clean APIs, and docs teams can pick up fast."},{title:"Reliability",body:"Monitoring, rollbacks, and guardrails baked in from the start."}].map(e=>(0,i.jsxs)("div",{className:"rounded-xl border border-border/70 bg-muted/40 p-4 space-y-2 shadow-inner",children:[(0,i.jsx)("p",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:e.title}),(0,i.jsx)("p",{className:"text-sm text-muted-foreground",children:e.body})]},e.title))})]}),(0,i.jsxs)("div",{className:"rounded-2xl border border-border/70 bg-card/80 p-6 shadow-sm backdrop-blur-sm space-y-3",children:[(0,i.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,i.jsxs)("div",{children:[(0,i.jsx)("p",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:"Project finder"}),(0,i.jsx)("p",{className:"text-sm font-semibold",children:"Search and filter by tech"}),(0,i.jsx)("p",{className:"mt-1 text-sm text-muted-foreground",children:"Use filters to jump to the work you care about. Tags reflect my direct contributions."})]}),(0,i.jsx)("div",{className:"rounded-full border border-border/70 bg-muted/40 px-3 py-1 text-[11px] text-muted-foreground",children:"Built with this stack"})]}),(0,i.jsx)("div",{className:"rounded-xl border border-border/60 bg-muted/40 p-4 shadow-inner",children:(0,i.jsx)(g,{projects:j.projects,onFilteredProjectsChange:s})})]})]})}),(0,i.jsx)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 max-w-[900px] mx-auto",children:e.map((e,t)=>(0,i.jsx)(a.default,{delay:.48+.05*t,children:(0,i.jsx)(m,{href:e.href,title:e.title,de
1scription:e.description,dates:e.dates,tags:e.technologies,image:e.image,video:e.video,links:e.links})},e.title))})]})})}},3495:function(e,t,s){"use strict";s.d(t,{ResumeCard:function(){return f}});var i=s(7437),r=s(2265),a=s(1146),n=s(3448);let o=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)(a.fC,{ref:t,className:(0,n.cn)("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",s),...r})});o.displayName=a.fC.displayName;let l=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)(a.Ee,{ref:t,className:(0,n.cn)("aspect-square h-full w-full",s),...r})});l.displayName=a.Ee.displayName;let c=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)(a.NY,{ref:t,className:(0,n.cn)("flex h-full w-full items-center justify-center rounded-full bg-muted",s),...r})});c.displayName=a.NY.displayName;var d=s(9174),u=s(9820),m=s(9653),p=s(407),h=s(7648);let f=e=>{let{logoUrl:t,altText:s,title:a,subtitle:f,href:x,badges:g,period:v,description:y}=e,[b,j]=r.useState(!1);return(0,i.jsx)(h.default,{href:x||"#",className:"block cursor-pointer",onClick:e=>{y&&(e.preventDefault(),j(!b))},children:(0,i.jsxs)(u.Zb,{className:"flex items-center justify-center pl-5",children:[(0,i.jsx)("div",{className:"flex-none",children:(0,i.jsxs)(o,{className:"border size-12 m-auto bg-muted-background dark:bg-foreground",children:[(0,i.jsx)(l,{src:t,alt:s,className:"object-contain",loading:"lazy"}),(0,i.jsx)(c,{children:s[0]})]})}),(0,i.jsxs)("div",{className:"flex-grow ml-4 items-center flex-col group",children:[(0,i.jsxs)(u.Ol,{children:[(0,i.jsxs)("div",{className:"flex items-center justify-between gap-x-2 text-base",children:[(0,i.jsxs)("h3",{className:"inline-flex items-center justify-center font-semibold leading-none text-xs sm:text-sm",children:[a,g&&(0,i.jsx)("span",{className:"inline-flex gap-x-1",children:g.map((e,t)=>(0,i.jsx)(d.C,{variant:"secondary",className:"align-middle text-xs",children:e},t))}),(0,i.jsx)(p.Z,{className:(0,n.cn)("size-4 translate-x-0 transform opacity-0 transition-all duration-300 ease-out group-hover:translate-x-1 group-hover:opacity-100",b?"rotate-90":"rotate-0")})]}),(0,i.jsx)("div",{className:"text-xs sm:text-sm tabular-nums text-muted-foreground text-right",children:v})]}),f&&(0,i.jsx)("div",{className:"font-sans text-xs",children:f})]}),y&&(0,i.jsx)(m.E.div,{initial:{opacity:0,height:0},animate:{opacity:b?1:0,height:b?"auto":0},transition:{duration:.7,ease:[.16,1,.3,1]},className:"mt-2 text-xs sm:text-sm",children:y})]})]})})}},7529:function(e,t,s){"use strict";s.d(t,{SkillsVisualization:function(){return o}});var i=s(7437),r=s(9653),a=s(9174),n=s(3448);function o(e){let{categories:t}=e,s="bg-primary";return(0,i.jsx)("div",{className:"space-y-4",children:(0,i.jsx)("div",{className:"grid gap-3 sm:grid-cols-2",children:t.map((e,t)=>(0,i.jsxs)(r.E.div,{initial:{opacity:0,y:12},animate:{opacity:1,y:0},transition:{delay:.04*t,duration:.25},className:(0,n.cn)("rounded-xl p-5 shadow-sm","bg-card/85 border border-border/70","backdrop-blur-sm"),children:[(0,i.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,i.jsxs)("div",{className:"space-y-1",children:[(0,i.jsx)("p",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Category"}),(0,i.jsx)("h3",{className:"text-lg font-semibold",children:e.name})]}),(0,i.jsxs)("div",{className:"text-right space-y-1",children:[(0,i.jsx)("p",{className:"text-[11px] uppercase tracking-wide text-muted-foreground",children:"Depth"}),(0,i.jsxs)("div",{className:"flex items-center gap-2",children:[(0,i.jsxs)("span",{className:"text-sm font-semibold",children:[e.level,"%"]}),(0,i.jsx)("div",{className:"h-2 w-16 rounded-full bg-muted",children:(0,i.jsx)("div",{className:(0,n.cn)("h-2 rounded-full",s),style:{width:"".concat(Math.max(e.level,6),"%")}})})]})]})]}),(0,i.jsx)("div",{className:"mt-4 h-2 w-full rounded-full bg-muted",children:(0,i.jsx)("div",{className:(0,n.cn)("h-2 rounded-full transition-all",s),style:{width:"".concat(Math.max(e.level,6),"%")}})}),(0,i.jsx)("div",{className:"mt-4 flex flex-wrap gap-2",children:e.skills.map(e=>(0,i.jsx)(a.C,{variant:"secondary",className:(0,n.cn)("text-xs px-3 py-1 font-medium","border-border/60 bg-muted/50 text-foreground"),children:e},e))})]},e.name))})})}},8484:function(e,t,s){"use strict";s.d(t,{TokyoTime:function(){return a}});var i=s(7437),r=s(2265);function a(){let[e,t]=(0,r.useState)(()=>new Date);(0,r.useEffect)(()=>{let e=setInterval(()=>t(new Date),1e3);return()=>clearInterval(e)},[]);let s=(0,r.useMemo)(()=>new Intl.DateTimeFormat("en-US",{hour:"numeric",minute:"2-digit",second:"2-digit",hour12:!0,timeZone:"Asia/Tokyo"}),[]);return(0,i.jsxs)("div",{className:"text-xs text-muted-foreground",children:["Tokyo time: ",(0,i.jsx)("span",{className:"font-semibold text-foreground tabular-nums",children:s.format(e)})]})}},9174:function(e,t,s){"use strict";s.d(t,{C:function(){return o}});var i=s(7437);s(2265);var r=s(535),a=s(3448);let n=(0,r.j)("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function o(e){let{className:t,variant:s,...r}=e;return(0,i.jsx)("div",{className:(0,a.cn)(n({variant:s}),t),...r})}},2381:function(e,t,s){"use strict";s.d(t,{z:function(){return c}});var i=s(7437),r=s(2265),a=s(7495),n=s(535),o=s(3448);let l=(0,n.j)("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2",sm:"h-8 rounded-md px-3 text-xs",lg:"h-10 rounded-md px-8",icon:"h-9 w-9"}},defaultVariants:{variant:"default",size:"default"}}),c=r.forwardRef((e,t)=>
1{let{className:s,variant:r,size:n,asChild:c=!1,...d}=e,u=c?a.g7:"button";return(0,i.jsx)(u,{className:(0,o.cn)(l({variant:r,size:n,className:s})),ref:t,...d})});c.displayName="Button"},9820:function(e,t,s){"use strict";s.d(t,{Ol:function(){return o},SZ:function(){return c},Zb:function(){return n},aY:function(){return d},eW:function(){return u},ll:function(){return l}});var i=s(7437),r=s(2265),a=s(3448);let n=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)("div",{ref:t,className:(0,a.cn)("rounded-xl border bg-card text-card-foreground shadow",s),...r})});n.displayName="Card";let o=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)("div",{ref:t,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",s),...r})});o.displayName="CardHeader";let l=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)("h3",{ref:t,className:(0,a.cn)("font-semibold leading-none tracking-tight",s),...r})});l.displayName="CardTitle";let c=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)("p",{ref:t,className:(0,a.cn)("text-sm text-muted-foreground",s),...r})});c.displayName="CardDescription";let d=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)("div",{ref:t,className:(0,a.cn)("p-6 pt-0",s),...r})});d.displayName="CardContent";let u=r.forwardRef((e,t)=>{let{className:s,...r}=e;return(0,i.jsx)("div",{ref:t,className:(0,a.cn)("flex items-center p-6 pt-0",s),...r})});u.displayName="CardFooter"},279:function(e,t,s){"use strict";s.d(t,{I:function(){return n}});var i=s(7437),r=s(2265),a=s(3448);let n=r.forwardRef((e,t)=>{let{className:s,type:r,...n}=e;return(0,i.jsx)("input",{type:r,className:(0,a.cn)("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",s),ref:t,...n})});n.displayName="Input"},3448:function(e,t,s){"use strict";s.d(t,{cn:function(){return a}});var i=s(1994),r=s(3335);function a(){for(var e=arguments.length,t=Array(e),s=0;s<e;s++)t[s]=arguments[s];return(0,r.m6)((0,i.W)(t))}}},function(e){e.O(0,[972,203,575,852,971,117,744],function(){return e(e.s=7355)}),_N_E=e.O()}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.