PageSourceSearch

https://kansoforce.ai/assets/kanso-DwYYD2ap.js

js kansoforce.ai collected 2026-10-05 12:16:31 UTC 20,858 bytes, 1 lines download raw bytes

1import{r as z,j as e,W as oe,S as le,m as t,B as Q,L as ee,A as de}from"./index-CwXOzz4m.js";const ce="/kanso-garden.png",he="/kanso-garden-photo.webp",te=.45,me=.8;function xe(){const h=z.useRef(null),T=z.useRef(null);return z.useEffect(()=>{const x=h.current,u=T.current;if(!x||!u)return;let M=0;const O=()=>{M=0;const v=x.getBoundingClientRect(),A=v.height||1,E=Math.min(1,Math.max(0,-v.top/A)),w=Math.min(1,Math.max(0,(E-te)/(me-te))),C=w*w*(3-2*w);u.style.opacity=String(C)},i=()=>{M||(M=requestAnimationFrame(O))};return window.addEventListener("scroll",i,{passive:!0}),window.addEventListener("resize",i,{passive:!0}),O(),()=>{window.removeEventListener("scroll",i),window.removeEventListener("resize",i),M&&cancelAnimationFrame(M)}},[]),e.jsxs("div",{ref:h,className:"relative w-full",style:{aspectRatio:"1678 / 937"},children:[e.jsx("img",{src:he,width:1678,height:937,fetchPriority:"high",alt:"A karesansui — a Japanese dry rock garden of raked gravel and a few carefully placed stones",className:"absolute inset-0 h-full w-full select-none object-cover",draggable:!1}),e.jsx("img",{ref:T,src:ce,width:3356,height:1874,decoding:"async",alt:"","aria-hidden":"true",className:"absolute inset-0 h-full w-full select-none object-cover",draggable:!1,style:{opacity:0,transition:"opacity 350ms cubic-bezier(0.22, 1, 0.36, 1)",willChange:"opacity"}})]})}const se=2600,ue=6,ge=150,ae=5,fe=11,pe=.14,ne=.05;function ye(){const h=z.useRef(null),T=z.useRef(null);return z.useEffect(()=>{const x=h.current,u=T.current;if(!x||!u)return;const M=window.matchMedia("(pointer: fine)"),O=window.matchMedia("(prefers-reduced-motion: reduce)");if(!M.matches||O.matches)return;const i=u.getContext("2d");if(!i)return;let v=0,A=0,E=1;const w=()=>{v=x.getBoundingClientRect().width,A=window.innerHeight,E=Math.min(window.devicePixelRatio||1,2),u.width=Math.round(v*E),u.height=Math.round(A*E),u.style.width=`${v}px`,u.style.height=`${A}px`,i.setTransform(E,0,0,E,0,0)};w();const C=new ResizeObserver(w);C.observe(x),window.addEventListener("resize",w);const l=[];let b=-1,j=-1,N=-1,R=-1,B=-1,G=-1,L=!1,Y=0;const ie=o=>{const W=x.getBoundingClientRect(),p=u.getBoundingClientRect();if(o.clientY<W.top||o.clientY>W.bottom){L=!1;return}b=o.clientX-p.left,j=o.clientY-p.top,L=b>=0&&j>=0&&b<=p.width&&j<=p.height,L&&(N<0&&(N=b,R=j),Y=performance.now(),(B<0||Math.hypot(b-B,j-G)>ue)&&(l.push({x:b,y:j,t:Y}),l.length>ge&&l.shift(),B=b,G=j))},J=()=>{L=!1};x.addEventListener("pointerleave",J);let H=0,I=!1,q=!0;const $=o=>{for(i.clearRect(0,0,v,A);l.length&&o-l[0].t>se;)l.shift();const W=o-Y,p=Math.max(0,1-W/1100);if(L&&p>0&&N>=0){N+=(b-N)*.045,R+=(j-R)*.045;const c=200*(.85+.15*Math.sin(o/1900)),k=i.createRadialGradient(N,R,0,N,R,c);k.addColorStop(0,`rgba(186, 132, 112, ${ne*p})`),k.addColorStop(.55,`rgba(186, 132, 112, ${ne*.3*p})`),k.addColorStop(1,"rgba(186, 132, 112, 0)"),i.fillStyle=k,i.beginPath(),i.arc(N,R,c,0,Math.PI*2),i.fill()}const d=l.length;if(d>2){const g=new Float64Array(d),c=new Float64Array(d);for(let n=0;n<d;n++)g[n]=l[n].x,c[n]=l[n].y;for(let n=0;n<3;n++){let f=g[0],S=c[0];for(let r=1;r<d-1;r++){const y=g[r],F=c[r];g[r]=(f+2*y+g[r+1])/4,c[r]=(S+2*F+c[r+1])/4,f=y,S=F}}const k=new Float64Array(d),K=new Float64Array(d);for(let n=0;n<d;n++){const f=Math.max(0,n-2),S=Math.min(d-1,n+2),r=g[S]-g[f],y=c[S]-c[f],F=Math.hypot(r,y)||1;k[n]=-y/F,K[n]=r/F}const U=new Float64Array(d);for(let n=0;n<d;n++)U[n]=Math.max(0,1-(o-l[n].t)/se)**1.6;i.lineWidth=1,i.lineCap="round";const _=(ae-1)/2;for(let n=0;n<ae;n++){const f=(n-_)*fe,S=1-Math.abs(n-_)/(_+.8);let r=-1,y=!1;const F=()=>{y&&i.stroke(),y=!1};for(let m=0;m<d-1;m++){const Z=pe*S*U[m],P=Z<=.002?-1:Math.max(1,Math.round(Z*255));P!==r&&(F(),r=P,P>0&&(i.strokeStyle=`rgba(110, 106, 100, ${P/255})`,i.beginPath(),y=!0)),!(P<=0)&&(i.moveTo(g[m]+k[m]*f,c[m]+K[m]*f),i.lineTo(g[m+1]+k[m+1]*f,c[m+1]+K[m+1]*f))}F()}}if(l.length===0&&p<=0){I=!1;return}H=requestAnimationFrame($)},re=()=>{I||document.hidden||(I=!0,H=requestAnimationFrame($))},D=o=>{ie(o),L&&q&&re()};window.addEventListener("pointermove",D,{passive:!0});const X=new IntersectionObserver(([o])=>{q=o.isIntersecting,q||(l.length=0,cancelAnimationFrame(H),I=!1,i.clearRect(0,0,v,A))},{rootMargin:"80px"});X.observe(x);const V=()=>{document.hidden&&(cancelAnimationFrame(H),I=!1)};return document.addEventListener("visibilitychange",V),()=>{cancelAnimationFrame(H),C.disconnect(),X.disconnect(),window.removeEventListener("pointermove",D),window.removeEventListener("resize",w),x.removeEventListener("pointerleave",J),document.removeEventListener("visibilitychange",V)}},[]),e.jsx("div",{ref:h,"aria-hidden":"true",className:"pointer-events-none absolute inset-0 z-10",children:e.jsx("canvas",{ref:T,className:"sticky top-0 block h-screen w-full"})})}const a='"Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "Songti SC", "Shippori Mincho", serif',s={initial:{opacity:0,y:24},whileInView:{opacity:1,y:0},viewport:{once:!0,margin:"-80px"},transition:{duration:.7,ease:[.16,1,.3,1]}},ve=[{kanji:"職人",romaji:"shokunin",title:"The maker answers for the work.",body:"The shokunin — the master craftsman — signs nothing yet stands behind everything. We build the same way: as if our name is on every line, because it is. Reliability is not a feature we add. It is the baseline we refuse to fall below."},{kanji:"改善",romaji:"kaizen",title:"Small, relentless, never finished.",body:"Kaizen is improvement made small and made constant — not the grand rewrite, but a sharper decision here, a removed step there, repeated without end. We would rather get quietly better forever than be brilliant once."},{kanji:"用の美",romaji:"yō no bi",title:"The beauty of what is used.",body:"Yanagi Sōetsu, founder of the mingei movement, taught that the truest beauty lives not in the museum but in the objects made to be used. Function, done with care, is its own elegance. A thing that works — quietly, dependably — is already beautiful."},{kanji:"自然",romaji:"shizen",title:"The best systems feel inevitable.",body:"Shizen is naturalness — the sense that a thing is simply as it should be. Great technology has this quality. It doesn't announce itself. The work moves as if it al
1ways wanted to move this way, and we merely removed what stood in its path."}];function be(){return e.jsxs(oe,{children:[e.jsx(le,{title:"The Principle Behind the Company Name",description:"The idea our name comes from, and how “remove everything that is not essential” shapes what we build, what we refuse to add, and how the product behaves."}),e.jsx("section",{className:"border-b border-border",children:e.jsx(t.div,{initial:{opacity:0},animate:{opacity:1},transition:{duration:1.2,ease:"easeOut"},children:e.jsx(xe,{})})}),e.jsxs("div",{className:"relative isolate",children:[e.jsx(ye,{}),e.jsx("section",{className:"border-b border-border",children:e.jsx("div",{className:"u-container u-section-lg relative z-20",children:e.jsxs("div",{className:"max-w-3xl",children:[e.jsx(t.div,{className:"text-sm font-medium text-muted-foreground mb-10",style:{letterSpacing:"var(--tracking-label)"},...s,children:"THE PHILOSOPHY BEHIND THE NAME"}),e.jsxs(t.div,{className:"flex flex-wrap items-end gap-x-8 gap-y-4 mb-12",...s,children:[e.jsx("span",{className:"leading-none text-[clamp(5rem,20vw,11rem)]",style:{fontFamily:a},children:"簡素"}),e.jsxs("div",{className:"pb-3",children:[e.jsx("div",{className:"text-3xl md:text-4xl font-semibold tracking-tight",children:"kanso"}),e.jsx("div",{className:"text-lg text-muted-foreground mt-1",style:{fontFamily:a},children:"かんそ  ·  /kan · so/"})]})]}),e.jsx(t.h1,{className:"text-2xl md:text-3xl font-medium tracking-tight mb-10 max-w-2xl",style:{lineHeight:1.35},...s,children:"Simplicity — the elimination of everything that is not essential."}),e.jsxs(t.div,{className:"space-y-6 text-lg text-muted-foreground max-w-2xl",style:{lineHeight:"var(--leading-relaxed)"},...s,children:[e.jsx("p",{children:"Our name begins with a single Japanese word. It carries one of the oldest ideas in design, and one of the hardest to practice: that clarity is not something you add, but something you uncover — by taking away."}),e.jsxs("p",{children:[e.jsx("span",{style:{fontFamily:a},className:"text-foreground font-medium",children:"簡"})," is brevity, the uncluttered line. ",e.jsx("span",{style:{fontFamily:a},className:"text-foreground font-medium",children:"素"})," is the plain and the elemental — a thing in its truest, most unadorned state. Together they form a quiet instruction that has guided Japanese gardens, teahouses, and craftsmen for more than five centuries: ",e.jsx("span",{className:"text-foreground",children:"remove until only the necessary remains. Then stop."})]})]})]})})}),e.jsx("section",{className:"border-b border-border u-surface-section",children:e.jsx("div",{className:"relative z-20 u-container u-section",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-10 md:gap-10 lg:gap-16",children:[e.jsx("div",{className:"md:col-span-3 flex md:justify-center",children:e.jsx(t.div,{className:"text-foreground/80 leading-none text-5xl md:text-6xl tracking-[0.15em]",style:{fontFamily:a,writingMode:"vertical-rl"},...s,children:"枯山水"})}),e.jsxs("div",{className:"md:col-span-9 max-w-2xl",children:[e.jsxs(t.div,{className:"mb-8",...s,children:[e.jsx("div",{className:"text-3xl md:text-4xl font-semibold tracking-tight mb-1",children:"The dry garden"}),e.jsx("div",{className:"text-base text-muted-foreground",style:{fontFamily:a},children:"karesansui  ·  かれさんすい"})]}),e.jsxs(t.div,{className:"space-y-6 text-lg text-muted-foreground",style:{lineHeight:"var(--leading-relaxed)"},...s,children:[e.jsx("p",{children:"The garden above is a karesansui — a Zen garden of raked gravel and stone. There is no water in it. The rings raked into the sand are the sea; the stones are islands, or mountains, or nothing at all. It is a landscape made almost entirely of absence."}),e.jsxs("p",{children:["Look again. What draws the eye is the stone. What holds the mind is the space around it — ",e.jsx("span",{style:{fontFamily:a},className:"text-foreground font-medium",children:"間"}),", ",e.jsx("span",{className:"text-foreground",children:"ma"}),", the interval the Japanese treat not as emptiness but as presence. In a room, in music, in a line of speech, ma is the pause that gives everything else its meaning."]}),e.jsx("p",{children:"At Kyoto's Ryōan-ji, fifteen stones rest in a bed of gravel. From any place you stand, you can only ever count fourteen — one is always hidden. The garden was built to be incomplete, because the stone you cannot see is the one that keeps you looking. And notice the tallest stone, left almost alone in the raked field: everything around it has been cleared away, so that a single form can matter."})]})]})]})})}),e.jsx("section",{className:"border-b border-border",children:e.jsx("div",{className:"relative z-20 u-container u-section",children:e.jsxs("div",{className:"max-w-3xl",children:[e.jsxs(t.div,{className:"mb-10",...s,children:[e.jsx("span",{className:"leading-none text-[clamp(3.5rem,11vw,7rem)]",style:{fontFamily:a},children:"引き算の美学"}),e.jsx("div",{className:"text-base text-muted-foreground mt-3",style:{fontFamily:a},children:"hikizan no bigaku  ·  the aesthetics of subtraction"})]}),e.jsxs(t.div,{className:"space-y-6 text-lg text-muted-foreground max-w-2xl",style:{lineHeight:"var(--leading-relaxed)"},...s,children:[e.jsxs("p",{children:["In the sixteenth century, the tea master Sen no Rikyū grew a garden of morning glories — ",e.jsx("span",{style:{fontFamily:a},className:"text-foreground",children:"朝顔"}),", asagao — so celebrated that the ruler Toyotomi Hideyoshi asked to see them for himself."]}
1),e.jsx("p",{children:"When Hideyoshi arrived at dawn, every flower had been cut. The garden was bare. Puzzled, and not a little annoyed, he stooped through the low door of the teahouse — and there, in the alcove, stood a single morning glory in a plain vase."})]}),e.jsx(t.blockquote,{className:"my-14 text-2xl md:text-3xl font-medium tracking-tight text-foreground max-w-2xl",style:{lineHeight:1.4},...s,children:"“By removing a hundred flowers, Rikyū had made one flower unforgettable.”"}),e.jsx(t.p,{className:"text-lg text-muted-foreground max-w-2xl",style:{lineHeight:"var(--leading-relaxed)"},...s,children:"This is the discipline beneath kanso. Not minimalism as a style, but the harder practice of knowing exactly what to remove so that what remains can carry its full weight. Anyone can add. The craft is in the cutting."})]})})}),e.jsx("section",{className:"border-b border-border u-surface-section",children:e.jsx("div",{className:"relative z-20 u-container u-section-sm",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-10 md:gap-10 lg:gap-16 items-start",children:[e.jsxs("div",{className:"md:col-span-4",children:[e.jsx(t.div,{className:"leading-none text-[clamp(6rem,26vw,16rem)]",style:{fontFamily:a,color:"var(--sienna-dark)"},...s,children:"力"}),e.jsx(t.div,{className:"text-base text-muted-foreground mt-2",style:{fontFamily:a},...s,children:"chikara  ·  force"})]}),e.jsxs("div",{className:"md:col-span-8 max-w-2xl",children:[e.jsxs(t.h2,{className:"text-3xl md:text-4xl font-semibold tracking-tight mb-8",style:{letterSpacing:"var(--tracking-snug)"},...s,children:["So why ",e.jsx("span",{style:{fontFamily:a},children:"力"})," — Force?"]}),e.jsxs(t.div,{className:"space-y-6 text-lg text-muted-foreground",style:{lineHeight:"var(--leading-relaxed)"},...s,children:[e.jsxs("p",{children:["Because simplicity is not softness. ",e.jsx("span",{style:{fontFamily:a},className:"text-foreground font-medium",children:"力"})," — chikara — is strength, the capacity to act. Kansoforce is the meeting of two ideas usually kept apart: the restraint to remove everything unnecessary, and the power to move what remains."]}),e.jsx("p",{children:"Enterprises do not fail for want of tools. They drown in them — systems that don't speak to each other, knowledge no one can find, work that stalls in the gaps between them. Our work is kanso applied to the modern enterprise: strip the noise, connect what matters, and give it the force to act."}),e.jsxs("p",{className:"text-foreground",children:[e.jsx("span",{style:{fontFamily:a},children:"簡素"})," is the discipline. ",e.jsx("span",{style:{fontFamily:a},children:"力"})," is what remains when nothing wasteful is left."]})]})]})]})})}),e.jsx("section",{className:"border-b border-border",children:e.jsxs("div",{className:"relative z-20 u-container u-section",children:[e.jsxs(t.div,{className:"max-w-2xl mb-16 md:mb-24",...s,children:[e.jsx("h2",{className:"text-3xl md:text-4xl font-semibold tracking-tight mb-4",style:{letterSpacing:"var(--tracking-snug)"},children:"What we carry into the work."}),e.jsx("p",{className:"text-lg text-muted-foreground",style:{lineHeight:"var(--leading-relaxed)"},children:"Five centuries of a single idea leaves you with more than an aesthetic. It leaves you with a way of working — four principles, borrowed from craft, that shape how we build."})]}),e.jsx("div",{className:"space-y-px",children:ve.map((h,T)=>e.jsxs(t.div,{className:"grid grid-cols-1 md:grid-cols-12 gap-6 md:gap-8 lg:gap-12 py-12 md:py-16 border-t border-border",...s,transition:{...s.transition,delay:T*.05},children:[e.jsxs("div",{className:"md:col-span-4 lg:col-span-3",children:[e.jsx("div",{className:"leading-none text-6xl md:text-7xl",style:{fontFamily:a},children:h.kanji}),e.jsx("div",{className:"text-sm text-muted-foreground mt-3",style:{fontFamily:a},children:h.romaji})]}),e.jsxs("div",{className:"md:col-span-8 lg:col-span-8 lg:col-start-5 max-w-2xl",children:[e.jsx("h3",{className:"text-xl md:text-2xl font-semibold tracking-tight mb-4",children:h.title}),e.jsx("p",{className:"text-lg text-muted-foreground",style:{lineHeight:"var(--leading-relaxed)"},children:h.body})]})]},h.romaji))})]})}),e.jsx("section",{className:"border-b border-border u-surface-section",children:e.jsx("div",{className:"relative z-20 u-container u-section-sm",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-10 md:gap-10 lg:gap-16 items-start",children:[e.jsxs("div",{className:"md:col-span-4",children:[e.jsx(t.div,{className:"leading-none text-[clamp(5rem,22vw,13rem)]",style:{fontFamily:a},...s,children:"志"}),e.jsx(t.div,{className:"text-base text-muted-foreground mt-2",style:{fontFamily:a},...s,children:"kokorozashi  ·  aspiration, the will to reach"})]}),e.jsxs("div",{className:"md:col-span-8 max-w-2xl",children:[e.jsx(t.h2,{className:"text-3xl md:text-4xl font-semibold tracking-tight mb-8",style:{letterSpacing:"var(--tracking-snug)"},...s,children:"Look closely at our mark."}),e.jsxs(t.div,{className:"space-y-6 text-lg text-muted-foreground",style:{lineHeight:"var(--leading-relaxed)"},...s,children:[e.jsx("p",{children:"Inside the letter K is a human figure, arm raised, reaching toward a single star. We did not put a machine at the centre of our logo. We put a person."}),e.jsxs("p",{children:["Everything we build proceeds from one conviction: that technology should raise people, not replace them — that the purpose of an intelligent system is to lift a human hand closer to something worth reaching for. The star is ",e.jsx("span",{style:{fontFamily:a},className:"text-foreground font-medium",children:"星"}),", hoshi, and it stands for ",e.jsx("span",{style:{fontFamily:a},className:"text-foreground font-medium",children:"志"}),", kokorozashi — the will to reach beyond your present grasp."]}),e.jsx("p",{className:"text-foreground",children:"Kanso clears the path. Force provides the lift. The reach is, and remains, human."})]})]})]})})}),e.jsx("section",{className:"border-b border-border",children:e.jsx("div",{className:"relative z-20 u-container u-section",children:e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-12 gap-10 md:gap-10 lg:gap-16 items-start",children:[e.jsxs("div",{className:"md:col-span-4",children:[e.jsx(t.div,{className:"leading-none text-[clamp(5rem,22vw,13rem)]",style:{fontFamily:a},...s,children:"実践"}),e.jsx(t.div,{className:"text-base text-muted-foreground mt-2",style:{fontFamily:a},...s,children:"jissen  ·  in practice"})]}),e.jsxs("div",{className:"md:col-span-8 max-w-2xl",children:[e.jsx(t.h2,{className:"text-3xl md:text-4xl font-semibold tracking-tight mb-8",style:{letterSpacing:"var(--tracking-snug)"},...s,children:"You're looking at it."}),e.jsxs(t.div,{className:"space-y-6 text-lg text-muted-foreground",style:{lineHeight:"var(--leading-relaxed)"},...s,children:[e.jsx("p",{children:"The discipline isn't only in what we build; it's in how we show it. This page — its open space, its plain words, the sentences we chose not to write — is kanso in practice. We hold the language to the same rule as the softw
1are: say what matters, remove the rest, and trust the reader with the quiet."}),e.jsxs("p",{children:["Even the palette keeps faith with it. The tones are drawn from things that age well — stone, clay, unbleached linen — and the single accent is held in reserve: the colour of matcha, ",e.jsx("span",{style:{fontFamily:a},className:"text-foreground font-medium",children:"抹茶"}),", the whisked green tea of the very ceremony that gave us this philosophy. It appears only where you act — the instant you select a word, settle into a field, or follow a link — one calm green, placed exactly where your attention already is."]})]})]})]})})})]}),e.jsx("section",{className:"u-on-dark",style:{background:"var(--gradient-bengara)"},children:e.jsx("div",{className:"u-container u-section",children:e.jsxs("div",{className:"mx-auto max-w-3xl text-center",children:[e.jsx(t.div,{className:"mb-8 text-[clamp(2.5rem,9vw,5.5rem)] leading-tight",style:{fontFamily:a},...s,children:"簡素は、力なり。"}),e.jsx(t.div,{className:"mb-6 text-base",style:{fontFamily:a,color:"var(--section-ink-muted)"},...s,children:"kanso wa, chikara nari"}),e.jsx(t.p,{className:"mb-12 text-2xl font-medium tracking-tight md:text-3xl",...s,children:"Simplicity is strength."}),e.jsxs(t.div,{className:"flex flex-col justify-center gap-3 sm:flex-row sm:gap-4",...s,children:[e.jsx(Q,{size:"lg",className:"w-full bg-[var(--stone-100)] font-medium text-[var(--stone-900)] hover:bg-white sm:w-auto",asChild:!0,children:e.jsxs(ee,{to:"/platform",children:["See what it builds",e.jsx(de,{className:"size-4",strokeWidth:1.5})]})}),e.jsx(Q,{size:"lg",variant:"outline",className:"w-full border-white/35 bg-transparent font-medium text-[var(--stone-100)] hover:border-white/60 hover:bg-white/10 sm:w-auto",asChild:!0,children:e.jsx(ee,{to:"/about",children:"Meet the people behind it"})})]})]})})})]})}export{be as Kanso};

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.