:root{--color-bg: lab(95% 0 -2);--color-text: lab(0% 0 0);--color-accent: lab(65% 25 70);--color-selection: lab(65% 25 70 / .33);--font-family: "SF Pro Rounded", ui-rounded, -apple-system, system-ui, BlinkMacSystemFont, "Arial", sans-serif;--base-font-size: 1.11rem;--line-height: 1.8;--transition-bezier: cubic-bezier(.34, 1.56, .64, 1);--icon-invert: 0;--spacing-xs: .5rem;--spacing-sm: .66rem;--spacing-base: 1rem;--spacing-md: 1.5rem;--spacing-lg: 2rem;--spacing-xl: 3rem;--spacing-2xl: 5rem;--opacity-subtle: .22;--opacity-medium: .44;--opacity-hover: .5;--opacity-strong: .8;--radius-sm: .77rem;--radius-lg: 2rem;--duration-fast: .2s;--duration-medium: .3s;--duration-slow: 2.22s;--duration-very-slow: 5.55s;--blur-heavy: 44px;--blur-object: 33px;--z-below: -1;--z-overlay: 999;--z-top: 1000;--icon-size: 54px;--icon-small: 16px;--object-size: 222px;--content-width: 38rem;--text-width: 65ch;--shadow-button: 0 4px 20px rgba(0, 0, 0, .08), inset 0 1px 2px rgba(255, 255, 255, .6), inset 0 -1px 2px rgba(0, 0, 0, .05);--shadow-button-hover: 0 6px 24px rgba(0, 0, 0, .12), inset 0 1px 3px rgba(255, 255, 255, .7), inset 0 -1px 2px rgba(0, 0, 0, .06);--shadow-button-active: 0 2px 12px rgba(0, 0, 0, .08), inset 0 1px 1px rgba(255, 255, 255, .4), inset 0 -1px 3px rgba(0, 0, 0, .1)}@media (prefers-color-scheme: dark){:root{--color-bg: lab(10% 1 0);--color-text: lab(95% 0 -2);--color-accent: lab(95% 0 -2);--color-selection: lab(100% 0 0 / .2);--icon-invert: 1;--shadow-button: 0 4px 20px rgba(0, 0, 0, .3), inset 0 1px 2px rgba(255, 255, 255, .2), inset 0 -1px 2px rgba(0, 0, 0, .3);--shadow-button-hover: 0 6px 24px rgba(0, 0, 0, .4), inset 0 1px 3px rgba(255, 255, 255, .25), inset 0 -1px 2px rgba(0, 0, 0, .3);--shadow-button-active: 0 2px 12px rgba(0, 0, 0, .3), inset 0 1px 1px rgba(255, 255, 255, .15), inset 0 -1px 3px rgba(0, 0, 0, .4)}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:var(--base-font-size);line-height:var(--line-height);background-color:var(--color-bg);color:var(--color-text);font-family:var(--font-family);letter-spacing:-.011em;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth}::selection{background-color:var(--color-selection);color:var(--color-text)}body{height:100dvh;text-rendering:optimizeLegibility;display:flex;flex-direction:column;justify-content:center;align-items:center;contain:layout style}body.content-page{height:auto;min-height:100dvh;justify-content:flex-start;padding-top:var(--spacing-xl);padding-bottom:var(--spacing-2xl);overflow-y:auto}article{align-items:flex-start}.content-page article{width:100%;max-width:var(--content-width);margin:0 auto;padding:0 var(--spacing-md)}section{max-width:var(--content-width);margin:var(--spacing-lg) auto;padding:0 var(--spacing-md)}section h1{font-size:clamp(1.5rem,5vw,2rem);margin-bottom:var(--spacing-base)}section h2{font-size:clamp(1.25rem,4vw,1.5rem);margin:var(--spacing-lg) 0 var(--spacing-base)}section h3{font-size:clamp(1.1rem,3vw,1.2rem);margin:var(--spacing-md) 0 .75rem}:is(p,h1,h2,h3,h4,h5,h6){overflow-wrap:break-word;max-width:var(--text-width)}section :is(p,ul){margin-bottom:var(--spacing-base)}.content-page h1{font-size:clamp(1.75rem,5vw,2.5rem);margin-bottom:var(--spacing-base)}.content-page h2{font-size:clamp(1.25rem,4vw,1.75rem);margin:var(--spacing-lg) 0 var(--spacing-base)}.content-page h3{font-size:clamp(1.1rem,3vw,1.3rem);margin:var(--spacing-md) 0 .75rem}.content-page :is(p,ul){margin-bottom:var(--spacing-base)}ul{list-style:none}section ul{list-style:disc;padding-left:var(--spacing-md)}section li{margin-bottom:var(--spacing-xs)}a{text-decoration:none;color:inherit}:is(img,picture,video,canvas,svg){display:block;max-width:100%;height:auto;contain:layout style}:is(input,button,textarea,select){font:inherit}table{border-collapse:collapse}.footer-container{position:fixed;bottom:1.3rem;left:var(--spacing-md);right:var(--spacing-md);display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:var(--z-top);contain:layout style}.footer-left{pointer-events:auto}.footer-left{opacity:var(--opacity-subtle);transition:opacity var(--duration-fast) ease;margin:0}.footer-left:hover{opacity:var(--opacity-hover)}.site-footer{position:static;pointer-events:auto;contain:layout style}.app-icon{width:var(--icon-size);height:var(--icon-size);border-radius:var(--radius-sm);contain:layout style}.lockup-container{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-base)}.icon-wrapper{display:flex;align-items:center;justify-content:center;height:var(--icon-size)}.text-wrapper{display:flex;flex-direction:column;justify-content:center}:is(.text-wrapper,.lockup-container) p{line-height:1.44rem;margin:0}.tagline{opacity:var(--opacity-medium)}@media (max-width: 640px){.site-footer{justify-content:center}.footer-container{left:var(--spacing-base);right:var(--spacing-base);justify-content:center}.footer-left{display:none}}.footer-links{display:flex;gap:var(--spacing-base);opacity:var(--opacity-subtle);transition:opacity var(--duration-fast) ease}.footer-links:hover{opacity:var(--opacity-hover)}.footer-links li{display:flex;align-items:center}.bgm-button,.dynamic-center-button{will-change:opacity,transform}.bgm-button:hover,.dynamic-center-button:hover{will-change:auto}.bgm-button{background:none;border:none;color:inherit;font:inherit;padding:0;cursor:pointer;opacity:var(--opacity-strong);transition:opacity var(--duration-fast) ease;display:flex;align-items:center}.bgm-button:hover{opacity:1}.bgm-icon{width:var(--icon-small);height:var(--icon-small)}.bgm-icon{filter:brightness(0) saturate(100%) invert(var(--icon-invert))}.dynamic-center-button{position:fixed;left:50%;bottom:25%;transform:translate(-50%);z-index:var(--z-overlay);background:linear-gradient(180deg,#ffffff80,#fff0),#0000000a;backdrop-filter:blur(var(--blur-heavy)) saturate(180%);-webkit-backdrop-filter:blur(var(--blur-heavy)) saturate(180%);color:var(--color-text);border:.5px solid rgba(255,255,255,.11);border-radius:var(--radius-lg);padding:.11rem .99rem;font-family:var(--font-family);font-weight:333;cursor:pointer;overflow:hidden;transition:all var(--duration-medium) var(--transition-bezier);white-space:nowrap;contain:layout style;box-shadow:var(--shadow-button);text-shadow:0 1px 1px rgba(255,255,255,.5)}.dynamic-center-button:before{content:"";position:absolute;top:0;left:0;right:0;height:50%;background:linear-gradient(180deg,#fff3,#fff0);border-radius:var(--radius-lg) var(--radius-lg) 0 0;pointer-events:none}.dynamic-center-button:hover{transform:translate(-50%) translateY(-2.22px);background:linear-gradient(180deg,#fff9,#fff0),#0000000d;box-shadow:var(--shadow-button-hover)}.dynamic-center-button:active{transform:translate(-50%) translateY(0);background:linear-gradient(180deg,#ffffff4d,#fff0),#0000000f;box-shadow:var(--shadow-button-active)}@media (max-width: 640px){.dynamic-center-button{bottom:20%;padding:var(--spacing-xs) var(--spacing-base);font-size:.9rem}}@media (prefers-color-scheme: dark){.dynamic-center-button{background:linear-gradient(180deg,#ffffff1a,#fff0),#ffffff14;color:var(--color-text);border:1px solid rgba(255,255,255,.2);box-shadow:var(--shadow-button);text-shadow:0 -1px 1px rgba(0,0,0,.5)}.dynamic-center-button:before{background:linear-gradient(180deg,#ffffff14,#fff0)}.dynamic-center-button:hover{background:linear-gradient(180deg,#ffffff26,#fff0),#ffffff1a;box-shadow:var(--shadow-button-hover)}.dynamic-center-button:active{background:linear-gradient(180deg,#ffffff0d,#fff0),#ffffff0f;box-shadow:var(--shadow-button-active)}}.object{--blur-amount: var(--blur-object);--base-opacity: .33;width:var(--object-size);height:var(--object-size);border-radius:50%;background-size:cover;background-position:center;opacity:0;position:fixed;z-index:var(--z-below);transition:opacity var(--duration-very-slow) var(--transition-bezier);filter:blur(var(--blur-amount));will-change:transform;contain:layout style paint}.cycling-text{opacity:1;transition:opacity var(--duration-slow) var(--transition-bezier);text-align:center}.cycling-text.fade-out{opacity:0}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(var(--float-height))}}@keyframes orbit{0%{transform:rotate(0) translate(var(--orbit-radius))}to{transform:rotate(360deg) translate(var(--orbit-radius))}}.object,.cycling-text{transform:translateZ(0)}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.object{display:none}}.testflight-link{padding-top:var(--spacing-xs)}
