.en-inline{display:inline-block;margin-left:.6em;font-size:.55em;font-weight:500;letter-spacing:.06em;color:var(--ink-faint);transform:translateY(-.2em)}.marquee{position:relative;z-index:2;overflow:hidden;padding-block:clamp(2rem,5vh,4rem);border-block:1px solid var(--line-soft);mask-image:linear-gradient(90deg,transparent 0,#000 6%,#000 94%,transparent 100%)}.marquee-track{display:inline-flex;align-items:baseline;gap:.5em;white-space:nowrap;will-change:transform;animation:mq-scroll 90s linear infinite}.mq-word{font-family:var(--f-display);font-weight:600;font-size:clamp(2rem,6vw,4.5rem);line-height:1;letter-spacing:.01em;color:transparent;-webkit-text-stroke:1px rgba(23,25,31,.16)}:root[data-theme=dark] .mq-word{-webkit-text-stroke-color:rgba(238,241,247,.15)}.mq-word i{font-style:normal;margin-inline:.35em;-webkit-text-stroke:0;color:var(--ink-faint);opacity:.4}.mq-word.mq-accent{color:color-mix(in oklab,var(--accent) 28%,transparent);-webkit-text-stroke:0}@keyframes mq-scroll{0%{transform:translate(0)}to{transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.marquee-track{animation:none}}.works-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(1.2rem,2.5vw,2rem)}.work-card{display:block;border:1px solid var(--line-soft);border-radius:18px;background:var(--surface);overflow:hidden;transition:border-color .4s ease,background .4s ease,transform .5s var(--ease)}.work-card:nth-child(1){grid-column:span 7}.work-card:nth-child(2){grid-column:span 5}.work-card:nth-child(3){grid-column:span 5}.work-card:nth-child(4){grid-column:span 7}.work-card:hover{border-color:color-mix(in oklab,var(--pa, var(--accent)) 55%,transparent);background:var(--surface-2);transform:translateY(-4px)}.card-visual{position:relative;aspect-ratio:16 / 9;overflow:hidden;display:flex;align-items:flex-end;padding:1.2rem;background:linear-gradient(var(--line-soft) 1px,transparent 1px),linear-gradient(90deg,var(--line-soft) 1px,transparent 1px),radial-gradient(130% 110% at 15% 0%,color-mix(in oklab,var(--pa, var(--accent)) 15%,transparent) 0%,transparent 55%),radial-gradient(120% 130% at 100% 100%,color-mix(in oklab,var(--pa, var(--accent)) 7%,transparent) 0%,transparent 50%),linear-gradient(200deg,var(--bg-lift) 0%,var(--visual-deep) 90%);background-size:36px 36px,36px 36px,auto,auto,auto;border-bottom:1px solid var(--line-soft);transition:transform .6s var(--ease)}.card-visual:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,color-mix(in oklab,var(--pa, var(--accent)) 65%,transparent),transparent);opacity:.35;transition:opacity .4s ease}.work-card:hover .card-visual:before{opacity:1}.work-card:hover .card-visual{transform:scale(1.025)}.card-cover{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:top center;transition:transform .6s var(--ease)}.work-card:hover .card-cover{transform:scale(1.04)}.work-card.has-cover .card-ghost{display:none}.work-card.has-cover .card-visual:after{content:"";position:absolute;inset:50% 0 0;z-index:0;background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--bg) 78%,transparent) 100%)}.work-card.has-cover .card-tags{position:relative;z-index:1}.card-ghost{position:absolute;top:-.18em;right:.05em;font-family:var(--f-mono);font-weight:500;font-size:clamp(5rem,10vw,8.5rem);line-height:1;color:transparent;-webkit-text-stroke:1px color-mix(in oklab,var(--pa, var(--accent)) 36%,transparent);pointer-events:none}.card-tags{display:flex;flex-wrap:wrap;gap:.45rem;position:relative}.chip{font-family:var(--f-mono);font-size:.72rem;letter-spacing:.03em;color:var(--ink-dim);padding:.28rem .7rem;border:1px solid var(--line);border-radius:100px;background:color-mix(in oklab,var(--bg) 55%,transparent);backdrop-filter:blur(6px)}.card-body{padding:1.4rem 1.5rem 1.5rem}.card-title{font-family:var(--f-display);font-weight:600;font-size:var(--step-2);line-height:1.1;letter-spacing:-.005em}.card-sub{margin-top:.35rem;color:color-mix(in oklab,var(--pa, var(--accent)) 80%,var(--ink));font-size:var(--step-0)}.card-summary{margin-top:.8rem;color:var(--ink-dim);font-size:var(--step--1);line-height:1.7;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card-meta{margin-top:1.1rem;display:flex;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:var(--step--1);color:var(--ink-faint)}.card-arrow{transition:transform .4s var(--ease);color:var(--ink-dim)}.work-card:hover .card-arrow{transform:translate(6px);color:var(--pa, var(--accent))}.section-footer{margin-top:3rem;text-align:center}.link-arrow{font-family:var(--f-mono);font-size:var(--step-0);letter-spacing:.02em;color:var(--ink-dim);border-bottom:1px solid var(--line);padding-bottom:.25rem;transition:color .3s ease,border-color .3s ease}.link-arrow:hover{color:var(--accent);border-color:var(--accent)}.cap-list{border-top:1px solid var(--line)}.cap-row{display:grid;grid-template-columns:4rem 1fr 1.4fr auto;gap:clamp(1rem,3vw,2.5rem);align-items:baseline;padding:clamp(1.6rem,3.5vh,2.4rem) .8rem;border-bottom:1px solid var(--line);transition:background .4s ease}.cap-row:hover{background:var(--surface)}.cap-index{font-family:var(--f-mono);font-size:var(--step--1);color:var(--ink-faint);transition:color .3s ease}.cap-row:hover .cap-index{color:var(--accent)}.cap-name{font-family:var(--f-display);font-weight:600;font-size:var(--step-2);line-height:1.1;transition:transform .4s var(--ease)}.cap-row:hover .cap-name{transform:translate(6px)}.cap-desc{color:var(--ink-dim);font-size:var(--step-0)}.cap-tech{font-family:var(--f-mono);font-size:var(--step--1);color:var(--ink-faint);letter-spacing:.02em;text-align:right;transition:color .3s ease}.cap-row:hover .cap-tech{color:var(--ink-dim)}.cta-wrap{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.6rem;padding-block:clamp(2rem,8vh,5rem)}.cta-wrap:before{content:"";position:absolute;inset:10% 15%;background:radial-gradient(50% 50% at 50% 42%,color-mix(in oklab,var(--accent) 7%,transparent) 0%,transparent 70%);pointer-events:none}.cta-line{font-family:var(--f-display);font-weight:700;font-size:clamp(2.4rem,1.4rem + 5vw,6.4rem);line-height:1.08;letter-spacing:-.015em}.cta-line .cjk{font-family:var(--f-cjk);font-weight:600;color:var(--accent)}.cta-sub{color:var(--ink-dim);font-size:var(--step-1)}.btn-contact{display:inline-block;margin-top:.6rem;font-family:var(--f-mono);font-size:var(--step-0);letter-spacing:.03em;padding:1rem 2.2rem;border:1px solid var(--line);border-radius:100px;color:var(--ink);transition:border-color .35s ease,background .35s ease,color .35s ease}.btn-contact:hover{border-color:var(--accent);color:var(--accent);background:color-mix(in oklab,var(--accent) 10%,transparent)}@media(max-width:900px){.work-card:nth-child(n){grid-column:span 12}.cap-row{grid-template-columns:3rem 1fr;grid-template-areas:"i n" ". d" ". t"}.cap-index{grid-area:i}.cap-name{grid-area:n}.cap-desc{grid-area:d}.cap-tech{grid-area:t;text-align:left}}.tokens.is-physical{position:relative}.tokens.is-physical .token{position:absolute;will-change:transform;user-select:none;-webkit-user-select:none;touch-action:none}.tokens.is-physical .token:hover{transform:none}.token.is-held{cursor:grabbing;border-color:var(--warm);color:var(--warm-soft);background:color-mix(in oklab,var(--warm) 12%,transparent);box-shadow:0 0 24px color-mix(in oklab,var(--warm) 25%,transparent)}
