:root{--color-bg:#f3f3f3;--color-text:#111;--color-accent:#000;--color-gray:#888}body,html{width:100%;height:100%;margin:0;padding:0;overflow:hidden;touch-action:manipulation;overscroll-behavior:none;text-size-adjust:100%}body{font-family:Inter,Noto Sans JP,sans-serif;background-color:var(--color-bg);color:var(--color-text);-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.font-mono-tech{font-family:JetBrains Mono,monospace}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#111;border-radius:0}.tech-border,.tech-panel{border:1px solid #111}.tech-panel{background:hsla(0,0%,100%,.95);box-shadow:10px 10px 0 rgba(0,0,0,.1);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.tech-input{background:transparent;border-bottom:2px solid #ddd;transition:all .3s;border-radius:0}.tech-input:focus{border-bottom:2px solid #111;outline:none}@keyframes float-tech{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes glitch-load{0%{opacity:0;transform:translateX(-10px)}20%{opacity:1;transform:translateX(5px)}40%{transform:translateX(-2px)}to{opacity:1;transform:translateX(0)}}@keyframes breathe{0%,to{transform:scale(1) translateY(0)}50%{transform:scale(1.025) translateY(-5px)}}@keyframes shake{0%,to{transform:translateX(0)}10%,30%,50%,70%,90%{transform:translateX(-5px)}20%,40%,60%,80%{transform:translateX(5px)}}@keyframes bounce-gentle{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pop-in{0%{transform:scale(.95)}50%{transform:scale(1.05)}to{transform:scale(1)}}@keyframes photo-pop{0%{opacity:0;transform:translateY(18px) rotate(-3deg) scale(.92)}60%{opacity:1;transform:translateY(-4px) rotate(-3deg) scale(1.04)}to{opacity:1;transform:translateY(0) rotate(-3deg) scale(1)}}@keyframes ken-burns{0%{transform:scale(1)}to{transform:scale(1.1)}}@keyframes fade-in-slow{0%{opacity:0;filter:blur(10px)}to{opacity:1;filter:blur(0)}}@media (prefers-reduced-motion:reduce){.modal-scale-in,.overlay-fade-in,.sheet-slide-in,.soft-fade-in,.toast-slide-in{animation:none!important;transition:none!important}}.soft-fade-in{animation:soft-fade-in .18s ease-out both}.overlay-fade-in{animation:overlay-fade-in .16s ease-out both}.modal-scale-in{animation:modal-scale-in .22s cubic-bezier(.16,1,.3,1) both}.sheet-slide-in{animation:sheet-slide-in .26s cubic-bezier(.16,1,.3,1) both}.toast-slide-in{animation:toast-slide-in .22s cubic-bezier(.16,1,.3,1) both}@keyframes soft-fade-in{0%{opacity:0;transform:translateY(4px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes overlay-fade-in{0%{opacity:0}to{opacity:1}}@keyframes modal-scale-in{0%{opacity:0;transform:translateY(10px) scale(.985);filter:blur(6px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes sheet-slide-in{0%{opacity:0;transform:translateY(14px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@keyframes toast-slide-in{0%{opacity:0;transform:translateY(8px);filter:blur(6px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}@layer utilities{.ease-spring{transition-timing-function:cubic-bezier(.175,.885,.32,1.1)}.ease-expo{transition-timing-function:cubic-bezier(.19,1,.22,1)}.perspective-1000{perspective:1000px}.backface-hidden{-webkit-backface-visibility:hidden;backface-visibility:hidden}}.stagger-enter{opacity:0;animation:stagger-slide-up .6s cubic-bezier(.16,1,.3,1) forwards}.stagger-1{animation-delay:.05s}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}@keyframes stagger-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.mobile-sheet-enter{animation:mobile-sheet-up .5s cubic-bezier(.19,1,.22,1) both}@keyframes mobile-sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.touch-active:active{transform:scale(.96);transition:transform .1s ease-out}.animate-float{animation:float-tech 6s ease-in-out infinite}.animate-glitch{animation:glitch-load .5s cubic-bezier(.25,.46,.45,.94) both}.animate-breathe{animation:breathe 5s ease-in-out infinite}.animate-shake{animation:shake .4s ease-in-out}.animate-bounce-gentle{animation:bounce-gentle 3s ease-in-out infinite}.animate-pop{animation:pop-in .4s cubic-bezier(.175,.885,.32,1.275)}.animate-photo-pop{animation:photo-pop .55s cubic-bezier(.16,.84,.32,1.18) both}.animate-ken-burns{animation:ken-burns 20s linear infinite alternate}.animate-fade-in{animation:fade-in-slow 1.5s ease-out forwards}.animate-slide-down{animation:slide-down .8s cubic-bezier(.16,1,.3,1) both}.animate-fade-in-up{animation:fade-in-up .8s cubic-bezier(.16,1,.3,1) both}@keyframes slide-down{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes float-up-fade{0%{opacity:0;transform:translateY(10px) scale(.5)}15%{opacity:1;transform:translateY(0) scale(1.2)}40%{transform:translateY(-8px) scale(1)}80%{opacity:1;transform:translateY(-20px)}to{opacity:0;transform:translateY(-30px) scale(.9)}}.animate-affinity-pop{animation:float-up-fade 2s ease-out forwards}