/* node_modules/.pnpm/tailwindcss@4.2.1/node_modules/tailwindcss/index.css */
@layer theme, base, components, utilities;
@layer theme {
  @theme default { --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-serif: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --color-red-50: oklch(97.1% 0.013 17.38); --color-red-100: oklch(93.6% 0.032 17.717); --color-red-200: oklch(88.5% 0.062 18.334); --color-red-300: oklch(80.8% 0.114 19.571); --color-red-400: oklch(70.4% 0.191 22.216); --color-red-500: oklch(63.7% 0.237 25.331); --color-red-600: oklch(57.7% 0.245 27.325); --color-red-700: oklch(50.5% 0.213 27.518); --color-red-800: oklch(44.4% 0.177 26.899); --color-red-900: oklch(39.6% 0.141 25.723); --color-red-950: oklch(25.8% 0.092 26.042); --color-orange-50: oklch(98% 0.016 73.684); --color-orange-100: oklch(95.4% 0.038 75.164); --color-orange-200: oklch(90.1% 0.076 70.697); --color-orange-300: oklch(83.7% 0.128 66.29); --color-orange-400: oklch(75% 0.183 55.934); --color-orange-500: oklch(70.5% 0.213 47.604); --color-orange-600: oklch(64.6% 0.222 41.116); --color-orange-700: oklch(55.3% 0.195 38.402); --color-orange-800: oklch(47% 0.157 37.304); --color-orange-900: oklch(40.8% 0.123 38.172); --color-orange-950: oklch(26.6% 0.079 36.259); --color-amber-50: oklch(98.7% 0.022 95.277); --color-amber-100: oklch(96.2% 0.059 95.617); --color-amber-200: oklch(92.4% 0.12 95.746); --color-amber-300: oklch(87.9% 0.169 91.605); --color-amber-400: oklch(82.8% 0.189 84.429); --color-amber-500: oklch(76.9% 0.188 70.08); --color-amber-600: oklch(66.6% 0.179 58.318); --color-amber-700: oklch(55.5% 0.163 48.998); --color-amber-800: oklch(47.3% 0.137 46.201); --color-amber-900: oklch(41.4% 0.112 45.904); --color-amber-950: oklch(27.9% 0.077 45.635); --color-yellow-50: oklch(98.7% 0.026 102.212); --color-yellow-100: oklch(97.3% 0.071 103.193); --color-yellow-200: oklch(94.5% 0.129 101.54); --color-yellow-300: oklch(90.5% 0.182 98.111); --color-yellow-400: oklch(85.2% 0.199 91.936); --color-yellow-500: oklch(79.5% 0.184 86.047); --color-yellow-600: oklch(68.1% 0.162 75.834); --color-yellow-700: oklch(55.4% 0.135 66.442); --color-yellow-800: oklch(47.6% 0.114 61.907); --color-yellow-900: oklch(42.1% 0.095 57.708); --color-yellow-950: oklch(28.6% 0.066 53.813); --color-lime-50: oklch(98.6% 0.031 120.757); --color-lime-100: oklch(96.7% 0.067 122.328); --color-lime-200: oklch(93.8% 0.127 124.321); --color-lime-300: oklch(89.7% 0.196 126.665); --color-lime-400: oklch(84.1% 0.238 128.85); --color-lime-500: oklch(76.8% 0.233 130.85); --color-lime-600: oklch(64.8% 0.2 131.684); --color-lime-700: oklch(53.2% 0.157 131.589); --color-lime-800: oklch(45.3% 0.124 130.933); --color-lime-900: oklch(40.5% 0.101 131.063); --color-lime-950: oklch(27.4% 0.072 132.109); --color-green-50: oklch(98.2% 0.018 155.826); --color-green-100: oklch(96.2% 0.044 156.743); --color-green-200: oklch(92.5% 0.084 155.995); --color-green-300: oklch(87.1% 0.15 154.449); --color-green-400: oklch(79.2% 0.209 151.711); --color-green-500: oklch(72.3% 0.219 149.579); --color-green-600: oklch(62.7% 0.194 149.214); --color-green-700: oklch(52.7% 0.154 150.069); --color-green-800: oklch(44.8% 0.119 151.328); --color-green-900: oklch(39.3% 0.095 152.535); --color-green-950: oklch(26.6% 0.065 152.934); --color-emerald-50: oklch(97.9% 0.021 166.113); --color-emerald-100: oklch(95% 0.052 163.051); --color-emerald-200: oklch(90.5% 0.093 164.15); --color-emerald-300: oklch(84.5% 0.143 164.978); --color-emerald-400: oklch(76.5% 0.177 163.223); --color-emerald-500: oklch(69.6% 0.17 162.48); --color-emerald-600: oklch(59.6% 0.145 163.225); --color-emerald-700: oklch(50.8% 0.118 165.612); --color-emerald-800: oklch(43.2% 0.095 166.913); --color-emerald-900: oklch(37.8% 0.077 168.94); --color-emerald-950: oklch(26.2% 0.051 172.552); --color-teal-50: oklch(98.4% 0.014 180.72); --color-teal-100: oklch(95.3% 0.051 180.801); --color-teal-200: oklch(91% 0.096 180.426); --color-teal-300: oklch(85.5% 0.138 181.071); --color-teal-400: oklch(77.7% 0.152 181.912); --color-teal-500: oklch(70.4% 0.14 182.503); --color-teal-600: oklch(60% 0.118 184.704); --color-teal-700: oklch(51.1% 0.096 186.391); --color-teal-800: oklch(43.7% 0.078 188.216); --color-teal-900: oklch(38.6% 0.063 188.416); --color-teal-950: oklch(27.7% 0.046 192.524); --color-cyan-50: oklch(98.4% 0.019 200.873); --color-cyan-100: oklch(95.6% 0.045 203.388); --color-cyan-200: oklch(91.7% 0.08 205.041); --color-cyan-300: oklch(86.5% 0.127 207.078); --color-cyan-400: oklch(78.9% 0.154 211.53); --color-cyan-500: oklch(71.5% 0.143 215.221); --color-cyan-600: oklch(60.9% 0.126 221.723); --color-cyan-700: oklch(52% 0.105 223.128); --color-cyan-800: oklch(45% 0.085 224.283); --color-cyan-900: oklch(39.8% 0.07 227.392); --color-cyan-950: oklch(30.2% 0.056 229.695); --color-sky-50: oklch(97.7% 0.013 236.62); --color-sky-100: oklch(95.1% 0.026 236.824); --color-sky-200: oklch(90.1% 0.058 230.902); --color-sky-300: oklch(82.8% 0.111 230.318); --color-sky-400: oklch(74.6% 0.16 232.661); --color-sky-500: oklch(68.5% 0.169 237.323); --color-sky-600: oklch(58.8% 0.158 241.966); --color-sky-700: oklch(50% 0.134 242.749); --color-sky-800: oklch(44.3% 0.11 240.79); --color-sky-900: oklch(39.1% 0.09 240.876); --color-sky-950: oklch(29.3% 0.066 243.157); --color-blue-50: oklch(97% 0.014 254.604); --color-blue-100: oklch(93.2% 0.032 255.585); --color-blue-200: oklch(88.2% 0.059 254.128); --color-blue-300: oklch(80.9% 0.105 251.813); --color-blue-400: oklch(70.7% 0.165 254.624); --color-blue-500: oklch(62.3% 0.214 259.815); --color-blue-600: oklch(54.6% 0.245 262.881); --color-blue-700: oklch(48.8% 0.243 264.376); --color-blue-800: oklch(42.4% 0.199 265.638); --color-blue-900: oklch(37.9% 0.146 265.522); --color-blue-950: oklch(28.2% 0.091 267.935); --color-indigo-50: oklch(96.2% 0.018 272.314); --color-indigo-100: oklch(93% 0.034 272.788); --color-indigo-200: oklch(87% 0.065 274.039); --color-indigo-300: oklch(78.5% 0.115 274.713); --color-indigo-400: oklch(67.3% 0.182 276.935); --color-indigo-500: oklch(58.5% 0.233 277.117); --color-indigo-600: oklch(51.1% 0.262 276.966); --color-indigo-700: oklch(45.7% 0.24 277.023); --color-indigo-800: oklch(39.8% 0.195 277.366); --color-indigo-900: oklch(35.9% 0.144 278.697); --color-indigo-950: oklch(25.7% 0.09 281.288); --color-violet-50: oklch(96.9% 0.016 293.756); --color-violet-100: oklch(94.3% 0.029 294.588); --color-violet-200: oklch(89.4% 0.057 293.283); --color-violet-300: oklch(81.1% 0.111 293.571); --color-violet-400: oklch(70.2% 0.183 293.541); --color-violet-500: oklch(60.6% 0.25 292.717); --color-violet-600: oklch(54.1% 0.281 293.009); --color-violet-700: oklch(49.1% 0.27 292.581); --color-violet-800: oklch(43.2% 0.232 292.759); --color-violet-900: oklch(38% 0.189 293.745); --color-violet-950: oklch(28.3% 0.141 291.089); --color-purple-50: oklch(97.7% 0.014 308.299); --color-purple-100: oklch(94.6% 0.033 307.174); --color-purple-200: oklch(90.2% 0.063 306.703); --color-purple-300: oklch(82.7% 0.119 306.383); --color-purple-400: oklch(71.4% 0.203 305.504); --color-purple-500: oklch(62.7% 0.265 303.9); --color-purple-600: oklch(55.8% 0.288 302.321); --color-purple-700: oklch(49.6% 0.265 301.924); --color-purple-800: oklch(43.8% 0.218 303.724); --color-purple-900: oklch(38.1% 0.176 304.987); --color-purple-950: oklch(29.1% 0.149 302.717); --color-fuchsia-50: oklch(97.7% 0.017 320.058); --color-fuchsia-100: oklch(95.2% 0.037 318.852); --color-fuchsia-200: oklch(90.3% 0.076 319.62); --color-fuchsia-300: oklch(83.3% 0.145 321.434); --color-fuchsia-400: oklch(74% 0.238 322.16); --color-fuchsia-500: oklch(66.7% 0.295 322.15); --color-fuchsia-600: oklch(59.1% 0.293 322.896); --color-fuchsia-700: oklch(51.8% 0.253 323.949); --color-fuchsia-800: oklch(45.2% 0.211 324.591); --color-fuchsia-900: oklch(40.1% 0.17 325.612); --color-fuchsia-950: oklch(29.3% 0.136 325.661); --color-pink-50: oklch(97.1% 0.014 343.198); --color-pink-100: oklch(94.8% 0.028 342.258); --color-pink-200: oklch(89.9% 0.061 343.231); --color-pink-300: oklch(82.3% 0.12 346.018); --color-pink-400: oklch(71.8% 0.202 349.761); --color-pink-500: oklch(65.6% 0.241 354.308); --color-pink-600: oklch(59.2% 0.249 0.584); --color-pink-700: oklch(52.5% 0.223 3.958); --color-pink-800: oklch(45.9% 0.187 3.815); --color-pink-900: oklch(40.8% 0.153 2.432); --color-pink-950: oklch(28.4% 0.109 3.907); --color-rose-50: oklch(96.9% 0.015 12.422); --color-rose-100: oklch(94.1% 0.03 12.58); --color-rose-200: oklch(89.2% 0.058 10.001); --color-rose-300: oklch(81% 0.117 11.638); --color-rose-400: oklch(71.2% 0.194 13.428); --color-rose-500: oklch(64.5% 0.246 16.439); --color-rose-600: oklch(58.6% 0.253 17.585); --color-rose-700: oklch(51.4% 0.222 16.935); --color-rose-800: oklch(45.5% 0.188 13.697); --color-rose-900: oklch(41% 0.159 10.272); --color-rose-950: oklch(27.1% 0.105 12.094); --color-slate-50: oklch(98.4% 0.003 247.858); --color-slate-100: oklch(96.8% 0.007 247.896); --color-slate-200: oklch(92.9% 0.013 255.508); --color-slate-300: oklch(86.9% 0.022 252.894); --color-slate-400: oklch(70.4% 0.04 256.788); --color-slate-500: oklch(55.4% 0.046 257.417); --color-slate-600: oklch(44.6% 0.043 257.281); --color-slate-700: oklch(37.2% 0.044 257.287); --color-slate-800: oklch(27.9% 0.041 260.031); --color-slate-900: oklch(20.8% 0.042 265.755); --color-slate-950: oklch(12.9% 0.042 264.695); --color-gray-50: oklch(98.5% 0.002 247.839); --color-gray-100: oklch(96.7% 0.003 264.542); --color-gray-200: oklch(92.8% 0.006 264.531); --color-gray-300: oklch(87.2% 0.01 258.338); --color-gray-400: oklch(70.7% 0.022 261.325); --color-gray-500: oklch(55.1% 0.027 264.364); --color-gray-600: oklch(44.6% 0.03 256.802); --color-gray-700: oklch(37.3% 0.034 259.733); --color-gray-800: oklch(27.8% 0.033 256.848); --color-gray-900: oklch(21% 0.034 264.665); --color-gray-950: oklch(13% 0.028 261.692); --color-zinc-50: oklch(98.5% 0 0); --color-zinc-100: oklch(96.7% 0.001 286.375); --color-zinc-200: oklch(92% 0.004 286.32); --color-zinc-300: oklch(87.1% 0.006 286.286); --color-zinc-400: oklch(70.5% 0.015 286.067); --color-zinc-500: oklch(55.2% 0.016 285.938); --color-zinc-600: oklch(44.2% 0.017 285.786); --color-zinc-700: oklch(37% 0.013 285.805); --color-zinc-800: oklch(27.4% 0.006 286.033); --color-zinc-900: oklch(21% 0.006 285.885); --color-zinc-950: oklch(14.1% 0.005 285.823); --color-neutral-50: oklch(98.5% 0 0); --color-neutral-100: oklch(97% 0 0); --color-neutral-200: oklch(92.2% 0 0); --color-neutral-300: oklch(87% 0 0); --color-neutral-400: oklch(70.8% 0 0); --color-neutral-500: oklch(55.6% 0 0); --color-neutral-600: oklch(43.9% 0 0); --color-neutral-700: oklch(37.1% 0 0); --color-neutral-800: oklch(26.9% 0 0); --color-neutral-900: oklch(20.5% 0 0); --color-neutral-950: oklch(14.5% 0 0); --color-stone-50: oklch(98.5% 0.001 106.423); --color-stone-100: oklch(97% 0.001 106.424); --color-stone-200: oklch(92.3% 0.003 48.717); --color-stone-300: oklch(86.9% 0.005 56.366); --color-stone-400: oklch(70.9% 0.01 56.259); --color-stone-500: oklch(55.3% 0.013 58.071); --color-stone-600: oklch(44.4% 0.011 73.639); --color-stone-700: oklch(37.4% 0.01 67.558); --color-stone-800: oklch(26.8% 0.007 34.298); --color-stone-900: oklch(21.6% 0.006 56.043); --color-stone-950: oklch(14.7% 0.004 49.25); --color-mauve-50: oklch(98.5% 0 0); --color-mauve-100: oklch(96% 0.003 325.6); --color-mauve-200: oklch(92.2% 0.005 325.62); --color-mauve-300: oklch(86.5% 0.012 325.68); --color-mauve-400: oklch(71.1% 0.019 323.02); --color-mauve-500: oklch(54.2% 0.034 322.5); --color-mauve-600: oklch(43.5% 0.029 321.78); --color-mauve-700: oklch(36.4% 0.029 323.89); --color-mauve-800: oklch(26.3% 0.024 320.12); --color-mauve-900: oklch(21.2% 0.019 322.12); --color-mauve-950: oklch(14.5% 0.008 326); --color-olive-50: oklch(98.8% 0.003 106.5); --color-olive-100: oklch(96.6% 0.005 106.5); --color-olive-200: oklch(93% 0.007 106.5); --color-olive-300: oklch(88% 0.011 106.6); --color-olive-400: oklch(73.7% 0.021 106.9); --color-olive-500: oklch(58% 0.031 107.3); --color-olive-600: oklch(46.6% 0.025 107.3); --color-olive-700: oklch(39.4% 0.023 107.4); --color-olive-800: oklch(28.6% 0.016 107.4); --color-olive-900: oklch(22.8% 0.013 107.4); --color-olive-950: oklch(15.3% 0.006 107.1); --color-mist-50: oklch(98.7% 0.002 197.1); --color-mist-100: oklch(96.3% 0.002 197.1); --color-mist-200: oklch(92.5% 0.005 214.3); --color-mist-300: oklch(87.2% 0.007 219.6); --color-mist-400: oklch(72.3% 0.014 214.4); --color-mist-500: oklch(56% 0.021 213.5); --color-mist-600: oklch(45% 0.017 213.2); --color-mist-700: oklch(37.8% 0.015 216); --color-mist-800: oklch(27.5% 0.011 216.9); --color-mist-900: oklch(21.8% 0.008 223.9); --color-mist-950: oklch(14.8% 0.004 228.8); --color-taupe-50: oklch(98.6% 0.002 67.8); --color-taupe-100: oklch(96% 0.002 17.2); --color-taupe-200: oklch(92.2% 0.005 34.3); --color-taupe-300: oklch(86.8% 0.007 39.5); --color-taupe-400: oklch(71.4% 0.014 41.2); --color-taupe-500: oklch(54.7% 0.021 43.1); --color-taupe-600: oklch(43.8% 0.017 39.3); --color-taupe-700: oklch(36.7% 0.016 35.7); --color-taupe-800: oklch(26.8% 0.011 36.5); --color-taupe-900: oklch(21.4% 0.009 43.1); --color-taupe-950: oklch(14.7% 0.004 49.3); --color-black: #000; --color-white: #fff; --spacing: 0.25rem; --breakpoint-sm: 40rem; --breakpoint-md: 48rem; --breakpoint-lg: 64rem; --breakpoint-xl: 80rem; --breakpoint-2xl: 96rem; --container-3xs: 16rem; --container-2xs: 18rem; --container-xs: 20rem; --container-sm: 24rem; --container-md: 28rem; --container-lg: 32rem; --container-xl: 36rem; --container-2xl: 42rem; --container-3xl: 48rem; --container-4xl: 56rem; --container-5xl: 64rem; --container-6xl: 72rem; --container-7xl: 80rem; --text-xs: 0.75rem; --text-xs--line-height: calc(1 / 0.75); --text-sm: 0.875rem; --text-sm--line-height: calc(1.25 / 0.875); --text-base: 1rem; --text-base--line-height: calc(1.5 / 1); --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 1.875rem; --text-3xl--line-height: calc(2.25 / 1.875); --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25); --text-5xl: 3rem; --text-5xl--line-height: 1; --text-6xl: 3.75rem; --text-6xl--line-height: 1; --text-7xl: 4.5rem; --text-7xl--line-height: 1; --text-8xl: 6rem; --text-8xl--line-height: 1; --text-9xl: 8rem; --text-9xl--line-height: 1; --font-weight-thin: 100; --font-weight-extralight: 200; --font-weight-light: 300; --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --font-weight-extrabold: 800; --font-weight-black: 900; --tracking-tighter: -0.05em; --tracking-tight: -0.025em; --tracking-normal: 0em; --tracking-wide: 0.025em; --tracking-wider: 0.05em; --tracking-widest: 0.1em; --leading-tight: 1.25; --leading-snug: 1.375; --leading-normal: 1.5; --leading-relaxed: 1.625; --leading-loose: 2; --radius-xs: 0.125rem; --radius-sm: 0.25rem; --radius-md: 0.375rem; --radius-lg: 0.5rem; --radius-xl: 0.75rem; --radius-2xl: 1rem; --radius-3xl: 1.5rem; --radius-4xl: 2rem; --shadow-2xs: 0 1px rgb(0 0 0 / 0.05); --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05); --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25); --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05); --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05); --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05); --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05); --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15); --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12); --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15); --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1); --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15); --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15); --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2); --text-shadow-sm: 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075); --text-shadow-md: 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1); --text-shadow-lg: 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1); --ease-in: cubic-bezier(0.4, 0, 1, 1); --ease-out: cubic-bezier(0, 0, 0.2, 1); --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --animate-spin: spin 1s linear infinite; --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; --animate-bounce: bounce 1s infinite; @keyframes spin { to { transform: rotate(360deg); } } @keyframes ping { 75%, 100% { transform: scale(2); opacity: 0; } } @keyframes pulse { 50% { opacity: 0.5; } } @keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, 0.2, 1); } } --blur-xs: 4px; --blur-sm: 8px; --blur-md: 12px; --blur-lg: 16px; --blur-xl: 24px; --blur-2xl: 40px; --blur-3xl: 64px; --perspective-dramatic: 100px; --perspective-near: 300px; --perspective-normal: 500px; --perspective-midrange: 800px; --perspective-distant: 1200px; --aspect-video: 16 / 9; --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --default-font-family: --theme(--font-sans, initial); --default-font-feature-settings: --theme( --font-sans--font-feature-settings, initial ); --default-font-variation-settings: --theme( --font-sans--font-variation-settings, initial ); --default-mono-font-family: --theme(--font-mono, initial); --default-mono-font-feature-settings: --theme( --font-mono--font-feature-settings, initial ); --default-mono-font-variation-settings: --theme( --font-mono--font-variation-settings, initial ); }
  @theme default inline reference { --blur: 8px; --shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); --shadow-inner: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); --drop-shadow: 0 1px 2px rgb(0 0 0 / 0.1), 0 1px 1px rgb(0 0 0 / 0.06); --radius: 0.25rem; --max-width-prose: 65ch; }
}
@layer base {
  *,
  ::after,
  ::before,
  ::backdrop,
  ::file-selector-button {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0 solid;
  }
  html,
  :host {
    line-height: 1.5;
    -webkit-text-size-adjust: 100%;
    tab-size: 4;
    font-family: --theme(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
    font-feature-settings: --theme(--default-font-feature-settings, normal);
    font-variation-settings: --theme(--default-font-variation-settings, normal);
    -webkit-tap-highlight-color: transparent;
  }
  hr {
    height: 0;
    color: inherit;
    border-top-width: 1px;
  }
  abbr:where([title]) {
    -webkit-text-decoration: underline dotted;
    text-decoration: underline dotted;
  }
  h1,
  h2,
  h3,
  h4,
  h5,
  h6 {
    font-size: inherit;
    font-weight: inherit;
  }
  a {
    color: inherit;
    -webkit-text-decoration: inherit;
    text-decoration: inherit;
  }
  b,
  strong {
    font-weight: bolder;
  }
  code,
  kbd,
  samp,
  pre {
    font-family: --theme(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);
    font-feature-settings: --theme(--default-mono-font-feature-settings, normal);
    font-variation-settings: --theme(--default-mono-font-variation-settings, normal);
    font-size: 1em;
  }
  small {
    font-size: 80%;
  }
  sub,
  sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
  }
  sub {
    bottom: -0.25em;
  }
  sup {
    top: -0.5em;
  }
  table {
    text-indent: 0;
    border-color: inherit;
    border-collapse: collapse;
  }
  :-moz-focusring {
    outline: auto;
  }
  progress {
    vertical-align: baseline;
  }
  summary {
    display: list-item;
  }
  ol,
  ul,
  menu {
    list-style: none;
  }
  img,
  svg,
  video,
  canvas,
  audio,
  iframe,
  embed,
  object {
    display: block;
    vertical-align: middle;
  }
  img,
  video {
    max-width: 100%;
    height: auto;
  }
  button,
  input,
  select,
  optgroup,
  textarea,
  ::file-selector-button {
    font: inherit;
    font-feature-settings: inherit;
    font-variation-settings: inherit;
    letter-spacing: inherit;
    color: inherit;
    border-radius: 0;
    background-color: transparent;
    opacity: 1;
  }
  :where(select:is([multiple], [size])) optgroup {
    font-weight: bolder;
  }
  :where(select:is([multiple], [size])) optgroup option {
    padding-inline-start: 20px;
  }
  ::file-selector-button {
    margin-inline-end: 4px;
  }
  ::placeholder {
    opacity: 1;
  }
  @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) {
    ::placeholder {
      color: color-mix(in oklab, currentcolor 50%, transparent);
    }
  }
  textarea {
    resize: vertical;
  }
  ::-webkit-search-decoration {
    -webkit-appearance: none;
  }
  ::-webkit-date-and-time-value {
    min-height: 1lh;
    text-align: inherit;
  }
  ::-webkit-datetime-edit {
    display: inline-flex;
  }
  ::-webkit-datetime-edit-fields-wrapper {
    padding: 0;
  }
  ::-webkit-datetime-edit,
  ::-webkit-datetime-edit-year-field,
  ::-webkit-datetime-edit-month-field,
  ::-webkit-datetime-edit-day-field,
  ::-webkit-datetime-edit-hour-field,
  ::-webkit-datetime-edit-minute-field,
  ::-webkit-datetime-edit-second-field,
  ::-webkit-datetime-edit-millisecond-field,
  ::-webkit-datetime-edit-meridiem-field {
    padding-block: 0;
  }
  ::-webkit-calendar-picker-indicator {
    line-height: 1;
  }
  :-moz-ui-invalid {
    box-shadow: none;
  }
  button,
  input:where([type=button], [type=reset], [type=submit]),
  ::file-selector-button {
    appearance: button;
  }
  ::-webkit-inner-spin-button,
  ::-webkit-outer-spin-button {
    height: auto;
  }
  [hidden]:where(:not([hidden=until-found])) {
    display: none !important;
  }
}
@layer utilities {
  @tailwind utilities;
}

/* app/globals.css */
@font-face {
  font-family: "Black Han Sans Local";
  src: url(../fonts/BlackHanSans-Regular.ttf) format("truetype");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}
:root {
  --navy: #081018;
  --navy-2: #101d29;
  --paper: #f6f7f5;
  --ink: #111719;
  --muted: #667278;
  --line: #d9dedd;
  --cyan: #08b6cb;
  --cyan-dark: #007f90;
  --copper: #d77a3f;
  --cathode: #306f9c;
  --anode: #383d42;
  --separator: #eceae1;
}
* {
  box-sizing: border-box;
}
html {
  scroll-behavior: smooth;
}
body {
  margin: 0;
  overflow-x: hidden;
  background: var(--paper);
  color: var(--ink);
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  word-break: keep-all;
}
button,
input {
  font: inherit;
}
button,
a {
  -webkit-tap-highlight-color: transparent;
}
a {
  color: inherit;
}
.topbar {
  position: fixed;
  z-index: 50;
  inset: 0 0 auto;
  height: 58px;
  padding: 0 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #050607d9;
  border-bottom: 1px solid #ffffff20;
  backdrop-filter: blur(12px);
}
.topbar a {
  color: #f7f8f8;
  text-decoration: none;
  font-family:
    Arial,
    "Noto Sans KR",
    sans-serif;
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
}
.newsis-logo {
  display: block;
  width: 82px;
  height: auto;
  filter: brightness(0) invert(1);
}
.issue-series {
  color: #8c9498;
}
.topbar a:focus-visible {
  outline: 2px solid var(--cyan);
  outline-offset: 5px;
}
@media (max-width: 720px) {
  .topbar {
    height: 54px;
    padding-inline: 14px;
  }
  .newsis-logo {
    width: 68px;
  }
  .issue-series {
    display: none;
  }
}
.hero {
  height: 190svh;
  background: var(--navy);
}
.hero-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  overflow: hidden;
  background: var(--navy);
}
.hero-visual {
  position: absolute;
  inset: 0 42% 0 0;
  overflow: hidden;
}
.hero-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 50%;
  opacity: calc(.42 + var(--progress) * .58);
  filter: blur(calc((1 - var(--progress)) * 12px)) saturate(calc(.72 + var(--progress) * .28));
  transform: scale(calc(1.09 - var(--progress) * .05));
  transition:
    opacity 80ms linear,
    filter 80ms linear,
    transform 80ms linear;
}
.hero-shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      90deg,
      rgba(8, 16, 24, .3),
      rgba(8, 16, 24, .82));
  opacity: calc(1 - var(--progress) * .82);
}
.hero-copy {
  position: absolute;
  right: clamp(28px, 8vw, 120px);
  top: 50%;
  width: min(48vw, 640px);
  color: white;
  opacity: calc(1 - var(--progress) * 1.35);
  transform: translateY(calc(-50% - var(--progress) * 60px));
}
.hero-copy > p {
  margin: 0 0 18px;
  color: var(--cyan);
  font-size: clamp(.84rem, 1.2vw, 1rem);
  font-weight: 900;
  letter-spacing: .08em;
}
.hero-copy h1 {
  margin: 0;
  font-size: clamp(5rem, 9vw, 9rem);
  font-weight: 950;
  letter-spacing: -.085em;
  line-height: .88;
}
.hero-copy strong {
  display: block;
  margin-top: 42px;
  font-size: clamp(1.4rem, 2.4vw, 2.25rem);
  letter-spacing: -.04em;
  line-height: 1.35;
}
.hero-copy > span {
  display: block;
  margin-top: 22px;
  color: #91a1aa;
  font-size: .82rem;
}
.scroll-cue {
  position: absolute;
  left: 50%;
  bottom: 28px;
  display: flex;
  align-items: center;
  gap: 10px;
  color: #90a0a8;
  font-size: .58rem;
  font-weight: 900;
  letter-spacing: .16em;
  opacity: calc(1 - var(--progress) * 2);
  transform: translateX(-50%);
}
.scroll-cue i {
  position: relative;
  width: 1px;
  height: 36px;
  overflow: hidden;
  background: #46545d;
}
.scroll-cue i::after {
  position: absolute;
  inset: -100% 0 auto;
  height: 100%;
  background: var(--cyan);
  animation: scroll-line 1.8s ease-in-out infinite;
  content: "";
}
@keyframes scroll-line {
  0% {
    transform: translateY(0);
  }
  100% {
    transform: translateY(200%);
  }
}
.anatomy {
  min-height: 100svh;
  padding: clamp(96px, 13vw, 168px) clamp(20px, 5vw, 72px) 100px;
  background: var(--navy);
  color: white;
}
.section-intro {
  max-width: 1180px;
  margin: 0 auto clamp(54px, 7vw, 88px);
}
.section-intro > span {
  color: var(--cyan);
  font-size: .72rem;
  font-weight: 900;
  letter-spacing: .12em;
}
.section-intro h2 {
  margin: 15px 0 24px;
  font-size: clamp(2.7rem, 6.5vw, 6rem);
  font-weight: 950;
  letter-spacing: -.075em;
  line-height: 1.02;
}
.section-intro > p {
  max-width: 680px;
  margin: 0;
  color: #9cacb4;
  font-size: clamp(.96rem, 1.4vw, 1.16rem);
  line-height: 1.9;
}
.battery-stage {
  position: relative;
  width: min(100%, 1040px);
  aspect-ratio: 2 / 3;
  max-height: 1160px;
  margin: 0 auto;
  overflow: hidden;
  border: 1px solid #23323e;
  background: #081018;
}
.battery-stage::after {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(255, 255, 255, .04);
  content: "";
  pointer-events: none;
}
.battery-stage > img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hotspot {
  position: absolute;
  z-index: 5;
  display: flex;
  align-items: center;
  gap: 10px;
  border: 0;
  background: transparent;
  color: white;
  cursor: pointer;
  transform: translate(-50%, -50%);
}
.hotspot > span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .75);
  border-radius: 50%;
  background: rgba(8, 16, 24, .7);
  color: var(--cyan);
  font-size: 1.8rem;
  font-weight: 300;
  line-height: 1;
  box-shadow: 0 0 0 0 rgba(8, 182, 203, .4);
  animation: hotspot-pulse 2.4s ease-out infinite;
  backdrop-filter: blur(6px);
}
.hotspot b {
  padding: 7px 9px;
  background: rgba(8, 16, 24, .82);
  font-size: .72rem;
  white-space: nowrap;
}
.hotspot:hover > span,
.hotspot:focus-visible > span {
  background: var(--cyan);
  color: var(--navy);
  outline: 3px solid rgba(8, 182, 203, .26);
  outline-offset: 4px;
}
@keyframes hotspot-pulse {
  0%, 45% {
    box-shadow: 0 0 0 0 rgba(8, 182, 203, .45);
  }
  100% {
    box-shadow: 0 0 0 14px rgba(8, 182, 203, 0);
  }
}
.stage-note {
  max-width: 1040px;
  margin: 13px auto 0;
  color: #6f818b;
  font-size: .66rem;
  line-height: 1.6;
}
.battery-story {
  height: 250svh;
  background: var(--navy);
  color: white;
}
.story-sticky {
  position: sticky;
  top: 0;
  height: 100svh;
  min-height: 620px;
  overflow: hidden;
  background:
    radial-gradient(
      circle at 48% 55%,
      rgba(30, 68, 91, .34),
      transparent 42%),
    linear-gradient(
      135deg,
      #071018 0%,
      #0a151f 55%,
      #071018 100%);
}
.story-sticky::before {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-image:
    linear-gradient(rgba(255, 255, 255, .025) 1px, transparent 1px),
    linear-gradient(
      90deg,
      rgba(255, 255, 255, .025) 1px,
      transparent 1px);
  background-size: 48px 48px;
  mask-image:
    linear-gradient(
      to bottom,
      transparent,
      #000 24%,
      #000 76%,
      transparent);
  content: "";
  pointer-events: none;
}
.model-canvas {
  position: absolute;
  left: var(--model-left-desktop);
  top: 53%;
  z-index: 2;
  width: min(58vw, 610px);
  aspect-ratio: 2 / 3;
  transform: translate(-50%, -50%) scale(var(--model-scale));
  transform-origin: center;
  will-change: left, transform;
}
.model-canvas::after {
  position: absolute;
  inset: 7% 3%;
  z-index: -1;
  border-radius: 50%;
  background: rgba(8, 182, 203, .08);
  filter: blur(56px);
  opacity: var(--reveal);
  content: "";
}
.model-canvas > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: var(--image-opacity);
  filter: blur(var(--image-blur)) saturate(var(--image-saturation));
  transform: scale(var(--image-scale));
  transition:
    opacity 70ms linear,
    filter 70ms linear,
    transform 70ms linear;
}
.story-title {
  position: absolute;
  right: clamp(28px, 7vw, 112px);
  top: 50%;
  z-index: 4;
  width: min(46vw, 620px);
  opacity: var(--title-opacity);
  transform: translateY(var(--title-shift));
  will-change: opacity, transform;
}
.story-title > p {
  margin: 0 0 18px;
  color: var(--cyan);
  font-size: clamp(.84rem, 1.2vw, 1rem);
  font-weight: 900;
  letter-spacing: .08em;
}
.story-title h1 {
  margin: 0;
  font-size: clamp(5rem, 9vw, 9rem);
  font-weight: 950;
  letter-spacing: -.085em;
  line-height: .88;
}
.story-title strong {
  display: block;
  margin-top: 42px;
  font-size: clamp(1.4rem, 2.4vw, 2.25rem);
  letter-spacing: -.04em;
  line-height: 1.35;
}
.story-title > span {
  display: block;
  margin-top: 22px;
  color: #91a1aa;
  font-size: .82rem;
}
.anatomy-guide {
  position: absolute;
  left: clamp(22px, 5vw, 72px);
  top: 92px;
  z-index: 5;
  width: min(33vw, 440px);
  padding: 22px 24px;
  border-left: 2px solid var(--cyan);
  background: rgba(8, 16, 24, .82);
  opacity: var(--hotspot-reveal);
  transform: translateY(var(--guide-shift));
  backdrop-filter: blur(12px);
  pointer-events: none;
}
.anatomy-guide > span {
  color: var(--cyan);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .12em;
}
.anatomy-guide h2 {
  margin: 10px 0 13px;
  font-size: clamp(1.65rem, 3vw, 2.85rem);
  font-weight: 950;
  letter-spacing: -.06em;
  line-height: 1.08;
}
.anatomy-guide p {
  margin: 0;
  color: #a3b1b8;
  font-size: clamp(.78rem, 1.05vw, .9rem);
  line-height: 1.75;
}
.model-canvas .hotspot {
  opacity: var(--hotspot-reveal);
  transform: translate(-50%, -50%) scale(var(--hotspot-scale));
  pointer-events: none;
}
.hotspots-ready .model-canvas .hotspot {
  pointer-events: auto;
}
.story-note {
  position: absolute;
  right: clamp(20px, 4vw, 58px);
  bottom: 26px;
  z-index: 4;
  max-width: 430px;
  margin: 0;
  color: #71838d;
  font-size: .62rem;
  line-height: 1.6;
  text-align: right;
  opacity: var(--hotspot-reveal);
}
.story-note span {
  display: block;
}
.story-note span + span {
  margin-top: 3px;
}
.battery-story .scroll-cue {
  opacity: var(--scroll-opacity);
}
.panel-layer {
  position: fixed;
  inset: 0;
  z-index: 100;
  display: flex;
  justify-content: flex-end;
  background: rgba(2, 7, 11, .72);
  animation: veil-in 180ms ease-out both;
}
.material-panel {
  width: min(570px, 100%);
  height: 100%;
  overflow-y: auto;
  padding: 28px clamp(24px, 4vw, 54px) 56px;
  background: #f8f9f7;
  color: var(--ink);
  animation: panel-in 320ms cubic-bezier(.2, .75, .2, 1) both;
}
.panel-close {
  padding: 9px 0;
  border: 0;
  border-bottom: 1px solid var(--ink);
  background: transparent;
  font-size: .75rem;
  font-weight: 850;
  cursor: pointer;
}
.panel-close:focus-visible {
  outline: 3px solid rgba(8, 182, 203, .35);
  outline-offset: 5px;
}
.panel-title-row {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 20px;
  align-items: start;
  margin-top: 58px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--line);
}
.panel-title-row > span {
  padding-top: 9px;
  color: var(--cyan-dark);
  font-size: .74rem;
  font-weight: 900;
}
.panel-title-row p {
  margin: 0 0 6px;
  color: var(--muted);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .13em;
}
.panel-title-row h2 {
  margin: 0;
  font-size: clamp(3rem, 8vw, 5.4rem);
  font-weight: 950;
  letter-spacing: -.075em;
  line-height: 1;
}
.panel-role {
  margin: 28px 0 12px;
  color: var(--cyan-dark);
  font-size: 1rem;
  font-weight: 900;
}
.panel-summary {
  margin: 0;
  font-size: 1rem;
  line-height: 1.85;
}
.panel-facts {
  margin: 40px 0 0;
}
.panel-facts > div {
  display: grid;
  grid-template-columns: 76px 1fr;
  gap: 18px;
  padding: 23px 0;
  border-top: 1px solid var(--line);
}
.panel-facts dt {
  color: var(--muted);
  font-size: .72rem;
  font-weight: 900;
}
.panel-facts dd {
  margin: 0;
  font-size: .89rem;
  line-height: 1.75;
}
.micro-source {
  margin: 34px 0 0;
  color: #8c9599;
  font-size: .62rem;
  line-height: 1.6;
}
@keyframes veil-in {
  from {
    opacity: 0;
  }
}
@keyframes panel-in {
  from {
    opacity: .6;
    transform: translateX(100%);
  }
}
.principle {
  padding: clamp(100px, 13vw, 176px) clamp(20px, 5vw, 72px);
  background: #edf0ef;
}
.section-intro.dark {
  color: var(--ink);
}
.section-intro.dark > p {
  color: var(--muted);
}
.symbol-guide {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  width: min(100%, 1080px);
  margin: 0 auto 48px;
  border: 1px solid #c7cfce;
  background: white;
}
.symbol-guide > div {
  min-height: 176px;
  padding: 24px;
}
.symbol-guide > div + div {
  border-left: 1px solid #d8dedd;
}
.symbol-guide strong {
  display: block;
  margin-bottom: 16px;
  color: var(--cyan-dark);
  font-size: 1.65rem;
  letter-spacing: -.04em;
}
.symbol-guide p {
  margin: 0;
  color: var(--muted);
  font-size: .8rem;
  line-height: 1.7;
}
.symbol-guide b {
  color: var(--ink);
}
.mode-switch {
  display: flex;
  width: min(100%, 760px);
  margin: 0 auto 34px;
  border: 1px solid #bfc8c7;
  background: white;
}
.mode-switch button {
  flex: 1;
  min-height: 56px;
  padding: 12px;
  border: 0;
  background: transparent;
  color: var(--muted);
  font-size: .82rem;
  font-weight: 900;
  cursor: pointer;
}
.mode-switch button + button {
  border-left: 1px solid #bfc8c7;
}
.mode-switch button.active {
  background: var(--ink);
  color: white;
}
.mode-switch button:focus-visible {
  outline: 3px solid rgba(8, 182, 203, .4);
  outline-offset: -4px;
}
.flow-diagram {
  position: relative;
  display: grid;
  grid-template-columns: minmax(110px, .65fr) minmax(280px, 2fr) minmax(110px, .65fr);
  width: min(100%, 1080px);
  min-height: 540px;
  margin: 0 auto;
  padding: 112px 36px 46px;
  overflow: hidden;
  border: 1px solid #bac3c3;
  background: #101820;
}
.electrode {
  position: relative;
  z-index: 2;
  display: flex;
  min-height: 330px;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .23);
  color: white;
  text-align: center;
}
.cathode-block {
  background:
    linear-gradient(
      180deg,
      #3d78a2,
      #1e4e70);
}
.anode-block {
  background:
    linear-gradient(
      180deg,
      #444c52,
      #242a2e);
}
.electrode span {
  font-size: 1.45rem;
  font-weight: 950;
}
.electrode strong {
  margin-top: 8px;
  color: #7cecf6;
  font-size: .82rem;
}
.electrode small {
  margin-top: 18px;
  color: rgba(255, 255, 255, .6);
  font-size: .67rem;
}
.jelly-center {
  position: relative;
  display: grid;
  min-width: 0;
  place-items: center;
  background: #142530;
}
.electrolyte-field {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(8, 182, 203, .1) 0 18px,
      transparent 18px 36px);
}
.field-label {
  position: absolute;
  left: 50%;
  bottom: 22px;
  z-index: 4;
  color: #6db7c1;
  font-size: .67rem;
  font-weight: 850;
  white-space: nowrap;
  transform: translateX(-50%);
}
.separator-line {
  position: absolute;
  inset: 0 auto 0 50%;
  z-index: 3;
  width: 16px;
  background:
    repeating-linear-gradient(
      0deg,
      #eceae1 0 5px,
      #bac1bd 5px 7px);
  box-shadow: 0 0 0 1px rgba(255, 255, 255, .3);
  transform: translateX(-50%);
}
.separator-line span {
  position: absolute;
  left: 50%;
  top: 12px;
  padding: 4px 6px;
  background: #eceae1;
  color: #374044;
  font-size: .58rem;
  font-weight: 900;
  white-space: nowrap;
  transform: translateX(-50%);
}
.electrolyte-field i {
  position: absolute;
  left: -36px;
  top: var(--row);
  z-index: 4;
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .65);
  border-radius: 50%;
  background: var(--cyan);
  color: #071116;
  font-size: .64rem;
  font-style: normal;
  font-weight: 950;
  animation: ion-right 3s linear infinite;
  animation-delay: var(--delay);
}
.discharge .electrolyte-field i {
  animation-name: ion-left;
}
@keyframes ion-right {
  from {
    left: -36px;
  }
  to {
    left: calc(100% + 4px);
  }
}
@keyframes ion-left {
  from {
    left: calc(100% + 4px);
  }
  to {
    left: -36px;
  }
}
.external-circuit {
  position: absolute;
  left: 9%;
  right: 9%;
  top: 36px;
  z-index: 5;
  height: 48px;
  border: 2px solid #79878c;
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
}
.circuit-label {
  position: absolute;
  left: 50%;
  top: -16px;
  padding: 2px 8px;
  background: #101820;
  color: #a6b3b8;
  font-size: .64rem;
  font-weight: 850;
  transform: translateX(-50%);
  white-space: nowrap;
}
.external-circuit i {
  position: absolute;
  top: -13px;
  left: 0;
  display: grid;
  width: 26px;
  height: 26px;
  place-items: center;
  border-radius: 50%;
  background: var(--copper);
  color: white;
  font-size: .6rem;
  font-style: normal;
  font-weight: 900;
  animation: electron-right 2.7s linear infinite;
  animation-delay: var(--delay);
}
.discharge .external-circuit i {
  animation-name: electron-left;
}
@keyframes electron-right {
  from {
    left: 0;
  }
  to {
    left: calc(100% - 26px);
  }
}
@keyframes electron-left {
  from {
    left: calc(100% - 26px);
  }
  to {
    left: 0;
  }
}
.reaction-card {
  width: min(100%, 760px);
  margin: 28px auto 0;
  padding: clamp(26px, 5vw, 46px);
  background: white;
  text-align: center;
}
.reaction-card > span {
  color: var(--cyan-dark);
  font-size: .66rem;
  font-weight: 950;
  letter-spacing: .15em;
}
.reaction-card h3 {
  margin: 12px 0;
  font-size: clamp(1.55rem, 3vw, 2.45rem);
  letter-spacing: -.05em;
}
.reaction-card p {
  margin: 0;
  color: var(--muted);
  font-size: .9rem;
  line-height: 1.8;
}
.term-note {
  width: min(100%, 760px);
  margin: 16px auto 0;
  color: #7b878b;
  font-size: .65rem;
  line-height: 1.65;
}
.meaning {
  padding: clamp(100px, 13vw, 176px) clamp(20px, 5vw, 72px);
  background: white;
}
.section-intro.light-on-white > p {
  color: var(--muted);
}
.pros-cons {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 1180px;
  margin: 0 auto;
}
.pros-cons article {
  min-height: 430px;
  padding: clamp(30px, 5vw, 62px);
}
.pros {
  background: var(--cyan);
}
.cons {
  background: var(--navy);
  color: white;
}
.pros-cons article > span {
  font-size: .72rem;
  font-weight: 950;
}
.pros-cons h3 {
  margin: 28px 0 54px;
  font-size: clamp(2rem, 4vw, 3.8rem);
  letter-spacing: -.06em;
  line-height: 1.05;
}
.pros-cons ul {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.pros-cons li {
  padding-top: 14px;
  border-top: 1px solid rgba(0, 0, 0, .28);
  font-size: .86rem;
}
.cons li {
  border-color: rgba(255, 255, 255, .23);
  color: #a9b5ba;
}
.market-story {
  display: grid;
  grid-template-columns: .8fr 1.2fr;
  max-width: 1180px;
  margin: clamp(80px, 10vw, 130px) auto 0;
  border-top: 3px solid var(--ink);
}
.market-number,
.market-context {
  padding: clamp(30px, 5vw, 60px);
}
.market-number {
  background: #f0f2f1;
}
.market-number > span {
  color: var(--muted);
  font-size: .68rem;
  font-weight: 850;
}
.market-number strong {
  display: block;
  margin: 16px 0 5px;
  color: var(--cyan-dark);
  font-size: clamp(5.5rem, 11vw, 9rem);
  letter-spacing: -.1em;
  line-height: .9;
}
.market-number em {
  font-size: .36em;
  font-style: normal;
}
.market-number p {
  margin: 0;
  color: var(--muted);
  font-size: .77rem;
  line-height: 1.65;
}
.market-context {
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.market-context h3 {
  margin: 0 0 24px;
  font-size: clamp(1.75rem, 3vw, 2.8rem);
  letter-spacing: -.05em;
  line-height: 1.2;
}
.market-context p {
  margin: 0;
  color: var(--muted);
  font-size: .95rem;
  line-height: 1.85;
}
.takeaway {
  max-width: 1180px;
  margin: clamp(100px, 14vw, 180px) auto 0;
  padding: clamp(42px, 8vw, 90px);
  background: var(--navy);
  color: white;
}
.takeaway > p {
  margin: 0 0 22px;
  color: var(--cyan);
  font-size: .78rem;
  font-weight: 900;
}
.takeaway h2 {
  margin: 0;
  font-size: clamp(2rem, 4.5vw, 4.2rem);
  letter-spacing: -.06em;
  line-height: 1.25;
}
.takeaway span {
  display: block;
  margin-top: 38px;
  color: #9caab0;
  font-size: clamp(.9rem, 1.5vw, 1.08rem);
  line-height: 1.75;
}
.sources {
  padding: 70px clamp(20px, 5vw, 72px);
  border-top: 1px solid var(--line);
  background: #f1f3f2;
}
.sources h2,
.sources > div,
.sources > p {
  max-width: 1180px;
  margin-left: auto;
  margin-right: auto;
}
.sources h2 {
  margin-top: 0;
  font-size: 1rem;
}
.sources > div {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 28px;
}
.sources a {
  color: #4e5a5e;
  font-size: .72rem;
  line-height: 1.6;
}
.sources > p {
  margin-top: 22px;
  margin-bottom: 0;
  color: #8a9497;
  font-size: .64rem;
  line-height: 1.65;
}
footer {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  padding: 28px clamp(20px, 5vw, 72px);
  background: var(--navy);
  color: #8d9ba2;
  font-size: .68rem;
}
footer strong {
  color: white;
}
@media (max-width: 820px) {
  .masthead {
    height: 58px;
  }
  .battery-story {
    height: 235svh;
  }
  .story-sticky {
    min-height: 590px;
  }
  .model-canvas {
    left: var(--model-left-mobile);
    top: 57%;
    width: min(84vw, 560px);
  }
  .story-title {
    left: 20px;
    right: 20px;
    top: 28%;
    width: auto;
    transform: translateY(var(--title-shift));
  }
  .story-title h1 {
    font-size: clamp(4rem, 17vw, 6.2rem);
  }
  .story-title strong {
    margin-top: 26px;
    font-size: 1.35rem;
  }
  .story-title > span {
    font-size: .74rem;
  }
  .anatomy-guide {
    left: 18px;
    right: 18px;
    top: 76px;
    width: auto;
    padding: 16px 18px;
    border-left-width: 1px;
  }
  .anatomy-guide h2 {
    font-size: clamp(1.45rem, 5.8vw, 2.15rem);
  }
  .anatomy-guide p {
    max-width: 560px;
    font-size: .78rem;
    line-height: 1.65;
  }
  .story-note {
    right: 18px;
    bottom: 17px;
    max-width: 76vw;
  }
  .symbol-guide {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .symbol-guide > div {
    min-height: 150px;
  }
  .symbol-guide > div:nth-child(3) {
    border-left: 0;
    border-top: 1px solid #d8dedd;
  }
  .symbol-guide > div:nth-child(4) {
    border-top: 1px solid #d8dedd;
  }
  .hero {
    height: 170svh;
  }
  .hero-visual {
    inset: 22% 0 0;
  }
  .hero-visual img {
    object-position: 50% 55%;
  }
  .hero-shade {
    background:
      linear-gradient(
        180deg,
        rgba(8, 16, 24, .96) 0,
        rgba(8, 16, 24, .55) 38%,
        rgba(8, 16, 24, .38) 100%);
  }
  .hero-copy {
    left: 20px;
    right: 20px;
    top: 15%;
    width: auto;
    transform: translateY(calc(-30% - var(--progress) * 45px));
  }
  .hero-copy h1 {
    font-size: clamp(4rem, 18vw, 6.2rem);
  }
  .hero-copy strong {
    margin-top: 26px;
    font-size: 1.35rem;
  }
  .hero-copy > span {
    font-size: .74rem;
  }
  .battery-stage {
    width: min(100%, 680px);
  }
  .flow-diagram {
    grid-template-columns: 92px minmax(170px, 1fr) 92px;
    min-height: 440px;
    padding: 96px 15px 34px;
  }
  .electrode {
    min-height: 290px;
  }
  .electrode span {
    font-size: 1.15rem;
  }
  .market-story {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .masthead p {
    font-size: .58rem;
  }
  .battery-story {
    height: 225svh;
  }
  .model-canvas {
    left: var(--model-left-mobile);
    top: 58%;
    width: min(108vw, 500px);
  }
  .story-title {
    top: 25%;
  }
  .story-title > p {
    margin-bottom: 12px;
    font-size: .76rem;
  }
  .story-title h1 {
    font-size: clamp(3.7rem, 17vw, 5.2rem);
  }
  .story-title strong {
    margin-top: 22px;
    font-size: 1.22rem;
  }
  .story-title > span {
    margin-top: 15px;
  }
  .anatomy-guide {
    top: 70px;
  }
  .anatomy-guide p {
    display: none;
  }
  .model-canvas .hotspot {
    gap: 4px;
  }
  .model-canvas .hotspot > span {
    width: 40px;
    height: 40px;
    font-size: 1.45rem;
  }
  .model-canvas .hotspot b {
    order: initial;
    font-size: .62rem;
  }
  .model-canvas .hotspot-cathode,
  .model-canvas .hotspot-electrolyte {
    flex-direction: row;
  }
  .model-canvas .hotspot-anode,
  .model-canvas .hotspot-separator {
    flex-direction: row-reverse;
  }
  .symbol-guide {
    margin-bottom: 34px;
  }
  .symbol-guide > div {
    min-height: 138px;
    padding: 20px 16px;
  }
  .symbol-guide strong {
    margin-bottom: 10px;
    font-size: 1.4rem;
  }
  .symbol-guide p {
    font-size: .73rem;
    line-height: 1.6;
  }
  .anatomy,
  .principle,
  .meaning {
    padding-left: 16px;
    padding-right: 16px;
  }
  .section-intro h2 {
    font-size: clamp(2.5rem, 13vw, 4rem);
  }
  .section-intro > p {
    font-size: .94rem;
    line-height: 1.8;
  }
  .battery-stage {
    margin: 0 -16px;
    width: calc(100% + 32px);
    border-right: 0;
    border-left: 0;
  }
  .hotspot {
    gap: 4px;
  }
  .hotspot > span {
    width: 42px;
    height: 42px;
    font-size: 1.55rem;
  }
  .hotspot b {
    font-size: .65rem;
  }
  .hotspot-cathode b,
  .hotspot-electrolyte b {
    order: -1;
  }
  .hotspot-cathode,
  .hotspot-electrolyte {
    flex-direction: row-reverse;
  }
  .material-panel {
    height: min(88svh, 850px);
    margin-top: auto;
    border-radius: 18px 18px 0 0;
    animation-name: sheet-in;
  }
  .panel-title-row {
    margin-top: 36px;
  }
  .panel-facts > div {
    grid-template-columns: 64px 1fr;
    gap: 12px;
  }
  @keyframes sheet-in {
    from {
      opacity: .6;
      transform: translateY(100%);
    }
  }
  .mode-switch {
    position: sticky;
    top: 58px;
    z-index: 20;
  }
  .mode-switch button {
    min-height: 52px;
    padding: 9px 5px;
    font-size: .74rem;
  }
  .flow-diagram {
    grid-template-columns: 74px minmax(140px, 1fr) 74px;
    min-height: 410px;
    margin: 0 -16px;
    width: calc(100% + 32px);
    padding: 90px 10px 26px;
    border-right: 0;
    border-left: 0;
  }
  .electrode {
    min-height: 270px;
  }
  .electrode span {
    font-size: .92rem;
  }
  .electrode strong {
    font-size: .68rem;
  }
  .electrode small {
    font-size: .54rem;
  }
  .separator-line {
    width: 12px;
  }
  .separator-line span {
    top: 9px;
    font-size: .5rem;
  }
  .field-label {
    bottom: 12px;
    font-size: .56rem;
  }
  .electrolyte-field i {
    width: 30px;
    height: 30px;
    font-size: .57rem;
  }
  .external-circuit {
    left: 12%;
    right: 12%;
  }
  .circuit-label {
    font-size: .56rem;
  }
  .reaction-card {
    padding: 28px 20px;
  }
  .pros-cons {
    grid-template-columns: 1fr;
  }
  .pros-cons article {
    min-height: 370px;
  }
  .market-number,
  .market-context {
    padding: 38px 24px;
  }
  .takeaway {
    padding: 48px 24px;
  }
  .takeaway h2 {
    font-size: 2rem;
  }
  .sources > div {
    grid-template-columns: 1fr;
  }
  footer {
    flex-direction: column;
  }
}
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }
  *,
  *::before,
  *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
  .hero-visual img {
    filter: none;
    opacity: 1;
    transform: none;
  }
  .model-canvas > img {
    filter: none;
  }
}
.continuous-story {
  height: 430svh;
}
.continuous-story .story-sticky {
  background:
    radial-gradient(
      circle at 50% 58%,
      rgba(17, 83, 105, .3),
      transparent 38%),
    linear-gradient(
      145deg,
      #071018 0%,
      #0b1923 52%,
      #071018 100%);
}
.continuous-story .story-title {
  transform: translateY(-50%);
}
.continuous-story .anatomy-guide {
  opacity: var(--hotspot-reveal);
  transform: translateY(0);
}
.continuous-story .story-note {
  opacity: var(--operation-reveal);
}
.battery-machine {
  position: absolute;
  left: var(--model-left);
  top: 56.7%;
  z-index: 3;
  width: min(92vw, 980px);
  height: min(72svh, 680px);
  opacity: var(--machine-opacity);
  filter: blur(var(--machine-blur));
  transform: translate(-50%, -50%);
  transition: filter 80ms linear, opacity 80ms linear;
  perspective: 1100px;
  will-change:
    left,
    filter,
    opacity;
}
.battery-render-frame {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 10;
  height: 100%;
  aspect-ratio: 2 / 3;
  opacity: var(--render-opacity);
  transform: translate(-50%, -50%) scale(var(--render-scale));
  transform-origin: center;
  transition: opacity 60ms linear, transform 60ms linear;
}
.battery-render-frame > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.battery-render-frame > canvas {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
.cutout-canvas {
  position: absolute;
  inset: 0;
  opacity: 0;
}
.cutout-canvas.is-ready {
  opacity: 1;
}
.cutout-fallback {
  transition: opacity .16s ease;
}
.cutout-fallback.is-hidden {
  opacity: 0;
}
.hotspot-callout {
  position: absolute;
  inset: 0;
  z-index: 22;
  opacity: var(--callout-opacity);
  pointer-events: none;
}
.callout-target {
  position: absolute;
  left: var(--target-x);
  top: var(--target-y);
  width: 11px;
  height: 11px;
  border: 2px solid white;
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 0 6px rgba(8, 182, 203, .18), 0 0 20px rgba(8, 182, 203, .6);
  transform: translate(-50%, -50%);
}
.callout-line-x,
.callout-line-y {
  position: absolute;
  display: block;
  opacity: .88;
}
.callout-line-x {
  left: var(--line-left);
  top: var(--target-y);
  width: var(--line-width);
  border-top: 1px solid rgba(171, 235, 240, .9);
}
.callout-line-y {
  left: var(--label-x);
  top: var(--line-top);
  height: var(--line-height);
  border-left: 1px solid rgba(171, 235, 240, .9);
}
.hotspot-callout button {
  position: absolute;
  left: var(--label-x);
  top: var(--label-y);
  z-index: 3;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 0;
  border: 0;
  background: transparent;
  color: white;
  cursor: pointer;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.hotspots-ready .hotspot-callout button {
  pointer-events: auto;
}
.hotspot-callout button > span {
  display: grid;
  width: 34px;
  height: 34px;
  flex: 0 0 auto;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 50%;
  background: rgba(7, 16, 24, .88);
  color: var(--cyan);
  font-size: 1.3rem;
  font-weight: 300;
  box-shadow: 0 0 0 0 rgba(8, 182, 203, .35);
  animation: hotspot-pulse 2.2s ease-out infinite;
}
.hotspot-callout button > b {
  display: flex;
  min-width: 72px;
  align-items: center;
  gap: 6px;
  padding: 7px 9px;
  border-left: 2px solid var(--cyan);
  background: rgba(7, 16, 24, .9);
  font-size: .68rem;
  white-space: nowrap;
  backdrop-filter: blur(7px);
}
.hotspot-callout button em {
  color: var(--cyan);
  font-size: .52rem;
  font-style: normal;
  letter-spacing: .08em;
}
.hotspot-callout button:hover > span,
.hotspot-callout button:focus-visible > span {
  background: var(--cyan);
  color: #071018;
}
.hotspot-callout button:focus-visible {
  outline: 3px solid rgba(8, 182, 203, .36);
  outline-offset: 4px;
}
.cell-shell {
  position: absolute;
  left: 50%;
  top: 51%;
  z-index: 12;
  width: clamp(154px, 24%, 232px);
  height: clamp(290px, 61%, 418px);
  opacity: var(--shell-opacity);
  transform: translate(-50%, -50%) rotateY(-15deg);
  transform-style: preserve-3d;
}
.cell-shell::before {
  position: absolute;
  inset: 0;
  border: 1px solid rgba(221, 238, 246, .62);
  border-radius: 28px 28px 52px 52px;
  background:
    linear-gradient(
      90deg,
      #1d3341 0%,
      #a8bdc7 13%,
      #eff7fa 28%,
      #718b99 47%,
      #d4e2e8 68%,
      #385363 83%,
      #101f29 100%);
  box-shadow:
    inset 12px 0 20px rgba(255, 255, 255, .18),
    inset -16px 0 20px rgba(0, 0, 0, .34),
    0 30px 60px rgba(0, 0, 0, .42);
  clip-path: polygon(0 0, 100% 0, 100% 21%, 64% 25%, 64% 78%, 100% 82%, 100% 100%, 0 100%);
  content: "";
}
.cell-shell::after {
  position: absolute;
  inset: 8% 14% 10%;
  z-index: -1;
  border-radius: 28px;
  background: #071018;
  box-shadow: inset 0 0 28px rgba(8, 182, 203, .2);
  content: "";
}
.cell-cap,
.cell-bottom {
  position: absolute;
  left: 3%;
  right: 3%;
  z-index: 4;
  height: 17%;
  border: 1px solid rgba(235, 245, 248, .7);
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse at 34% 30%,
      #f5fafb 0 8%,
      #9aadb7 31%,
      #415968 58%,
      #101d26 82%);
  box-shadow: inset 0 -10px 18px rgba(0, 0, 0, .35), 0 7px 12px rgba(0, 0, 0, .38);
}
.cell-cap {
  top: -5%;
}
.cell-bottom {
  bottom: -5%;
  opacity: .86;
}
.cell-terminal {
  position: absolute;
  left: 50%;
  top: -9%;
  z-index: 6;
  width: 43%;
  height: 15%;
  border: 1px solid rgba(246, 251, 252, .8);
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse at 38% 28%,
      #fff,
      #8da2ad 52%,
      #263b48 82%);
  box-shadow: 0 9px 10px rgba(0, 0, 0, .35);
  transform: translateX(-50%);
}
.roll-window {
  position: absolute;
  right: -3%;
  top: 28%;
  z-index: 5;
  display: grid;
  width: 42%;
  height: 46%;
  align-content: center;
  gap: 7%;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .22);
  border-radius: 7px 28px 28px 7px;
  background: #071018;
  box-shadow: inset 0 0 25px rgba(0, 0, 0, .7);
}
.roll-window i {
  display: block;
  width: 120%;
  height: 13%;
  border-radius: 50%;
  background:
    linear-gradient(
      90deg,
      #2e7395,
      #d9f5f2 36%,
      #e9ece7 52%,
      #323b42 73%,
      #d17b46);
  box-shadow: 0 1px 0 rgba(255, 255, 255, .35);
  transform: translateX(-18%) rotate(-4deg);
}
.layer-plane {
  position: absolute;
  inset: 0;
  z-index: 7;
  opacity: var(--flat-opacity);
  transform: scale(var(--plane-scale));
  transform-origin: 50% 52%;
  transform-style: preserve-3d;
  will-change: transform;
}
.material-strip {
  position: absolute;
  left: var(--layer-left);
  top: 54%;
  width: var(--layer-width);
  height: var(--layer-height);
  overflow: visible;
  border: 1px solid rgba(255, 255, 255, .28);
  border-radius: 32px 12px 32px 12px;
  box-shadow: -8px 14px 26px rgba(0, 0, 0, .26), inset 7px 0 14px rgba(255, 255, 255, .08);
  transform: translate(-50%, -50%) rotateY(var(--layer-rotate));
  transform-origin: center;
  transition:
    left 60ms linear,
    width 60ms linear,
    height 60ms linear,
    transform 60ms linear;
}
.material-strip::after {
  position: absolute;
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(
      115deg,
      rgba(255, 255, 255, .2),
      transparent 32%,
      rgba(0, 0, 0, .12));
  content: "";
  pointer-events: none;
}
.material-strip > b {
  position: absolute;
  left: 50%;
  top: 13px;
  z-index: 3;
  padding: 5px 7px;
  background: rgba(7, 16, 24, .8);
  color: white;
  font-size: clamp(.58rem, 1vw, .74rem);
  white-space: nowrap;
  opacity: var(--layer-label-opacity);
  transform: translateX(-50%);
}
.plane-cathode {
  background:
    linear-gradient(
      90deg,
      #214f6d,
      #3a91b7 54%,
      #285f7d);
}
.plane-electrolyte {
  border-color: rgba(93, 225, 236, .48);
  background:
    repeating-linear-gradient(
      0deg,
      rgba(149, 245, 245, .16) 0 2px,
      transparent 2px 9px),
    linear-gradient(
      90deg,
      rgba(11, 122, 143, .7),
      rgba(74, 212, 221, .5));
}
.plane-separator {
  border-color: rgba(255, 255, 255, .62);
  background:
    radial-gradient(
      circle,
      rgba(69, 86, 89, .28) 0 1px,
      transparent 1.5px) 0 0 / 8px 8px,
    linear-gradient(
      90deg,
      #d8ddd9,
      #f5f5ef 52%,
      #c5ceca);
}
.plane-anode {
  border-right: 5px solid #bd6637;
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, .035) 0 1px,
      transparent 1px 5px),
    linear-gradient(
      90deg,
      #1c2227,
      #424b51 52%,
      #22292e);
}
.machine-hotspot {
  opacity: var(--spot-opacity);
  transform: translate(-50%, -50%) scale(var(--spot-opacity));
  pointer-events: none;
}
.hotspots-ready .machine-hotspot {
  pointer-events: auto;
}
.machine-hotspot:nth-of-type(even) {
  flex-direction: row-reverse;
}
.operation-guide {
  position: absolute;
  left: clamp(20px, 5vw, 72px);
  top: 88px;
  z-index: 30;
  width: min(35vw, 470px);
  opacity: var(--operation-reveal);
  pointer-events: none;
  transform: translateY(0);
}
.operation-guide > span {
  color: var(--cyan);
  font-size: .68rem;
  font-weight: 900;
  letter-spacing: .12em;
}
.operation-guide h2 {
  margin: 11px 0 13px;
  color: white;
  font-size: clamp(1.7rem, 3.2vw, 3rem);
  font-weight: 950;
  letter-spacing: -.06em;
  line-height: 1.08;
}
.operation-guide p {
  max-width: 440px;
  margin: 0;
  color: #a5b4bb;
  font-size: .85rem;
  line-height: 1.7;
}
.operation-log-panel {
  position: absolute;
  top: 88px;
  right: clamp(20px, 4vw, 64px);
  z-index: 34;
  width: min(28vw, 350px);
  overflow: hidden;
  border: 1px solid rgba(132, 218, 229, .3);
  border-radius: 10px;
  background: rgba(5, 17, 25, .88);
  color: white;
  opacity: var(--operation-reveal);
  box-shadow: 0 18px 48px rgba(0, 0, 0, .2);
  pointer-events: none;
  backdrop-filter: blur(12px);
}
.continuous-story.stage-unfolded .operation-log-panel {
  pointer-events: auto;
}
.operation-log-heading {
  padding: 13px 14px 11px;
  border-bottom: 1px solid rgba(255, 255, 255, .1);
}
.operation-log-heading > div {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.operation-log-heading > div span {
  color: #8ea0a8;
  font-size: .62rem;
  font-weight: 900;
  letter-spacing: .12em;
}
.operation-log-heading > div b {
  color: var(--cyan);
  font-size: .66rem;
}
.operation-progress {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 5px;
  margin: 10px 0 0;
  padding: 0;
  list-style: none;
}
.operation-progress li {
  min-width: 0;
  color: #60717a;
  font-size: .5rem;
  font-weight: 850;
  line-height: 1.25;
  text-align: center;
}
.operation-progress li i {
  display: grid;
  width: 20px;
  height: 20px;
  margin: 0 auto 5px;
  place-items: center;
  border: 1px solid #40515a;
  border-radius: 50%;
  font-size: .52rem;
  font-style: normal;
}
.operation-progress li span {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.operation-progress li.is-complete,
.operation-progress li.is-current {
  color: #c8f9fb;
}
.operation-progress li.is-complete i {
  border-color: var(--cyan);
  background: rgba(8, 182, 203, .18);
  color: var(--cyan);
}
.operation-progress li.is-current i {
  border-color: var(--cyan);
  background: var(--cyan);
  color: #071018;
  box-shadow: 0 0 0 5px rgba(8, 182, 203, .12);
}
.operation-log {
  position: relative;
  height: 118px;
  overflow-y: auto;
  overscroll-behavior: contain;
  touch-action: pan-y;
  scrollbar-color: rgba(8, 182, 203, .55) transparent;
}
.operation-log > ol {
  margin: 0;
  padding: 4px 14px 14px;
  list-style: none;
}
.operation-log li {
  padding: 10px 0;
  border-bottom: 1px solid rgba(255, 255, 255, .075);
}
.operation-log li > span {
  color: #77909a;
  font-size: .54rem;
  font-weight: 900;
  letter-spacing: .06em;
}
.operation-log li p {
  margin: 4px 0 0;
  color: #aebdc3;
  font-size: .68rem;
  line-height: 1.55;
}
.operation-log li.is-latest p {
  color: white;
}
.operation-log-empty {
  margin: 0;
  padding: 24px 16px;
  color: #819198;
  font-size: .66rem;
  line-height: 1.6;
}
.operation-log-latest {
  position: absolute;
  right: 12px;
  bottom: 9px;
  padding: 6px 9px;
  border: 1px solid rgba(8, 182, 203, .55);
  border-radius: 14px;
  background: #092732;
  color: #89ebf1;
  font-size: .58rem;
  font-weight: 900;
  cursor: pointer;
}
.operation-log-latest:focus-visible {
  outline: 2px solid white;
  outline-offset: 2px;
}
.operation-guide button {
  margin-top: 18px;
  padding: 11px 18px;
  border: 1px solid var(--cyan);
  background: var(--cyan);
  color: #061116;
  font-size: .78rem;
  font-weight: 900;
  cursor: pointer;
  pointer-events: auto;
}
.operation-guide button:focus-visible {
  outline: 3px solid rgba(8, 182, 203, .35);
  outline-offset: 4px;
}
.flow-system {
  position: absolute;
  inset: 0;
  z-index: 24;
  opacity: var(--operation-reveal);
  pointer-events: none;
}
.electron-circuit {
  position: absolute;
  left: 9%;
  right: 9%;
  top: 24%;
  height: 17%;
  border: 2px solid rgba(177, 196, 204, .6);
  border-bottom: 0;
  border-radius: 30px 30px 0 0;
}
.electron-circuit > span {
  position: absolute;
  left: 50%;
  top: -17px;
  padding: 4px 10px;
  background: #0a1720;
  color: #b9c6cb;
  font-size: .66rem;
  font-weight: 850;
  transform: translateX(-50%);
}
.discharge.is-running .electron-circuit > span {
  color: #071018;
  background: #f3c548;
  box-shadow: 0 0 0 8px rgba(243, 197, 72, .12), 0 0 32px rgba(243, 197, 72, .7);
}
.electron-circuit i {
  position: absolute;
  left: 3%;
  top: -12px;
  display: none;
  width: 34px;
  height: 24px;
  place-items: center;
  border-radius: 12px;
  background: #d77a3f;
  color: white;
  font-size: .55rem;
  font-style: normal;
  font-weight: 850;
  opacity: 0;
}
.is-running .electron-circuit i {
  display: grid;
  opacity: 1;
}
.charge.is-running .electron-circuit i {
  animation: circuit-right 1.75s linear infinite;
  animation-delay: var(--particle-delay);
}
.discharge.is-running .electron-circuit i {
  animation: circuit-left 1.75s linear infinite;
  animation-delay: var(--particle-delay);
}
.ion-path {
  position: absolute;
  left: 10%;
  right: 10%;
  top: 55%;
  height: 3px;
  background: rgba(113, 235, 241, .42);
}
.ion-path > span {
  position: absolute;
  left: 50%;
  top: 14px;
  padding: 3px 8px;
  background: rgba(7, 16, 24, .82);
  color: #76dfe8;
  font-size: .61rem;
  font-weight: 850;
  white-space: nowrap;
  transform: translateX(-50%);
}
.ion-path i {
  position: absolute;
  left: 3%;
  top: -9px;
  display: none;
  width: 20px;
  height: 20px;
  border: 2px solid white;
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 0 5px rgba(8, 182, 203, .16);
  opacity: 0;
}
.is-running .ion-path i {
  display: block;
  opacity: 1;
}
.charge.is-running .ion-path i {
  animation: ion-right-flat 1.55s linear infinite;
  animation-delay: var(--particle-delay);
}
.discharge.is-running .ion-path i {
  animation: ion-left-flat 1.55s linear infinite;
  animation-delay: var(--particle-delay);
}
@keyframes circuit-right {
  from {
    left: 3%;
  }
  to {
    left: calc(97% - 34px);
  }
}
@keyframes circuit-left {
  from {
    left: calc(97% - 34px);
  }
  to {
    left: 3%;
  }
}
@keyframes ion-right-flat {
  from {
    left: 3%;
  }
  to {
    left: calc(97% - 20px);
  }
}
@keyframes ion-left-flat {
  from {
    left: calc(97% - 20px);
  }
  to {
    left: 3%;
  }
}
.cycle-button {
  position: absolute;
  top: 80%;
  z-index: 31;
  display: flex;
  min-width: 96px;
  min-height: 48px;
  align-items: center;
  justify-content: center;
  gap: 9px;
  padding: 10px 15px;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 28px;
  background: rgba(7, 16, 24, .9);
  color: white;
  font-size: .82rem;
  font-weight: 900;
  opacity: var(--operation-reveal);
  cursor: pointer;
  backdrop-filter: blur(8px);
}
.cycle-button span {
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 50%;
  background: var(--cyan);
  color: #071018;
  font-size: .62rem;
}
.charge-button {
  left: 3%;
}
.discharge-button {
  right: 3%;
  opacity: 0;
}
.battery-machine.has-charged .discharge-button {
  opacity: var(--operation-reveal);
}
.cycle-button:not(:disabled):not(.is-done) {
  animation: action-pulse 1.55s ease-in-out infinite;
}
.cycle-button:disabled {
  cursor: default;
}
.cycle-button.is-done {
  border-color: rgba(8, 182, 203, .65);
  color: #91aab3;
}
.cycle-button:focus-visible {
  outline: 3px solid rgba(8, 182, 203, .38);
  outline-offset: 4px;
}
@keyframes action-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(8, 182, 203, .08);
    transform: translateY(0);
  }
  50% {
    box-shadow: 0 0 0 12px rgba(8, 182, 203, 0), 0 0 28px rgba(8, 182, 203, .32);
    transform: translateY(-4px);
  }
}
.unlocked {
  animation: unlock-section 500ms ease-out both;
}
@keyframes unlock-section {
  from {
    opacity: 0;
    transform: translateY(35px);
  }
}
@media (max-width: 820px) {
  .continuous-story {
    height: 400svh;
  }
  .battery-machine {
    left: var(--model-left-mobile);
    top: 58%;
    width: min(108vw, 720px);
    height: min(68svh, 600px);
  }
  .continuous-story .story-title {
    top: 26%;
  }
  .operation-guide {
    left: 18px;
    right: 18px;
    top: 76px;
    width: auto;
  }
  .operation-guide h2 {
    font-size: clamp(1.45rem, 6vw, 2.1rem);
  }
  .operation-guide p {
    max-width: 520px;
    font-size: .78rem;
  }
  .operation-log-panel {
    left: auto;
    right: clamp(14px, 3vw, 24px);
    top: 154px;
    width: clamp(250px, 42vw, 320px);
    max-width: calc(100vw - 32px);
  }
  .operation-log {
    height: 88px;
  }
  .material-strip {
    border-radius: 20px 7px 20px 7px;
  }
  .electron-circuit {
    left: 8%;
    right: 8%;
    top: 25%;
  }
  .cycle-button {
    top: 82%;
    min-width: 86px;
    min-height: 44px;
    padding: 8px 12px;
  }
}
@media (max-width: 560px) {
  .continuous-story {
    height: 390svh;
  }
  .battery-machine {
    top: 60%;
    width: 100vw;
    height: min(66svh, 550px);
  }
  .cell-shell {
    width: 150px;
    height: 276px;
  }
  .continuous-story .story-title {
    top: 25%;
  }
  .continuous-story .anatomy-guide p {
    display: block;
  }
  .anatomy-guide {
    top: 70px;
  }
  .anatomy-guide h2 {
    font-size: 1.45rem;
  }
  .anatomy-guide p {
    font-size: .73rem;
    line-height: 1.55;
  }
  .operation-guide h2 {
    margin-bottom: 9px;
  }
  .operation-log-panel {
    left: auto;
    right: 12px;
    top: 146px;
    width: clamp(210px, 58vw, 250px);
    max-width: calc(100vw - 24px);
  }
  .operation-log-heading {
    padding: 9px 10px 8px;
  }
  .operation-progress {
    gap: 3px;
    margin-top: 7px;
  }
  .operation-progress li {
    font-size: .45rem;
  }
  .operation-progress li i {
    width: 18px;
    height: 18px;
    margin-bottom: 3px;
  }
  .operation-log {
    height: 76px;
  }
  .operation-log > ol {
    padding: 2px 11px 10px;
  }
  .operation-log li {
    padding: 7px 0;
  }
  .operation-log li p {
    font-size: .62rem;
    line-height: 1.45;
  }
  .operation-guide button {
    margin-top: 11px;
  }
  .material-strip > b {
    top: 8px;
    padding: 4px 5px;
    font-size: .54rem;
  }
  .machine-hotspot > span {
    width: 38px;
    height: 38px;
  }
  .machine-hotspot b {
    font-size: .6rem;
  }
  .electron-circuit {
    left: 9%;
    right: 9%;
    top: 27%;
    height: 14%;
  }
  .electron-circuit > span {
    font-size: .56rem;
  }
  .electron-circuit i {
    width: 29px;
    font-size: .5rem;
  }
  .ion-path {
    left: 9%;
    right: 9%;
  }
  .ion-path > span {
    top: 12px;
    font-size: .54rem;
  }
  .ion-path i {
    width: 17px;
    height: 17px;
    top: -7px;
  }
  .cycle-button {
    top: 82%;
    min-width: 78px;
    min-height: 42px;
    gap: 6px;
    padding: 7px 10px;
    font-size: .72rem;
  }
  .cycle-button span {
    width: 21px;
    height: 21px;
    font-size: .56rem;
  }
  .charge-button {
    left: 4%;
  }
  .discharge-button {
    right: 4%;
  }
  .continuous-story .story-note {
    max-width: 88vw;
    font-size: .57rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .battery-machine {
    filter: none;
  }
  .layer-plane,
  .material-strip {
    transition: none;
  }
  .cycle-button:not(:disabled):not(.is-done) {
    animation: none;
    box-shadow: 0 0 0 3px rgba(8, 182, 203, .28);
  }
}
.continuous-story {
  height: 100svh;
  min-height: 620px;
}
.continuous-story .story-sticky {
  position: relative;
}
.continuous-story .story-title {
  opacity: 1;
  transform: translateY(-50%);
  transition: opacity .8s ease, transform 1.15s cubic-bezier(.22, .74, .18, 1);
}
.continuous-story.stage-hotspots .story-title,
.continuous-story.stage-unfolded .story-title {
  opacity: 0;
  transform: translateY(calc(-50% - 46px));
  pointer-events: none;
}
.continuous-story .battery-machine {
  left: 29%;
  opacity: .32;
  filter: blur(12px) saturate(.78);
  transition:
    left 1.45s cubic-bezier(.2, .75, .16, 1),
    filter 1.35s ease,
    opacity 1.1s ease;
  will-change:
    left,
    filter,
    opacity;
}
.continuous-story.stage-hotspots .battery-machine,
.continuous-story.stage-unfolded .battery-machine {
  left: 50%;
  opacity: 1;
  filter: blur(0) saturate(1);
}
.continuous-story .battery-render-frame {
  opacity: 1;
  transform: translate(-50%, -50%) scale(.94);
  transition: opacity .65s ease, transform 1.35s cubic-bezier(.2, .75, .16, 1);
}
.continuous-story.stage-hotspots .battery-render-frame {
  transform: translate(-50%, -50%) scale(1.03);
}
.continuous-story.stage-unfolded .battery-render-frame {
  opacity: 0;
  transform: translate(-50%, -50%) scale(.82);
  pointer-events: none;
}
.continuous-story .battery-render-frame > img,
.continuous-story .battery-render-frame > canvas {
  filter: drop-shadow(0 34px 42px rgba(0, 0, 0, .45));
}
.continuous-story .hotspot-callout {
  opacity: 0;
  transform: scale(.975);
  transform-origin: center;
  transition: opacity .6s ease, transform .75s cubic-bezier(.2, .75, .16, 1);
  transition-delay: 0s;
}
.continuous-story.stage-hotspots .hotspot-callout {
  opacity: 1;
  transform: scale(1);
  transition-delay: var(--callout-delay);
}
.continuous-story.stage-unfolded .hotspot-callout {
  opacity: 0;
  transform: scale(.96);
  transition-delay: 0s;
}
.continuous-story.stage-hotspots .hotspot-callout button {
  pointer-events: auto;
}
.continuous-story .hotspot-callout button > span {
  position: relative;
  animation: none;
}
.continuous-story.stage-hotspots .hotspot-callout button > span {
  animation: hotspot-pulse 1.7s ease-out infinite;
  animation-delay: var(--callout-delay);
}
.continuous-story .hotspot-callout button > span::before,
.continuous-story .hotspot-callout button > span::after {
  position: absolute;
  content: "";
  pointer-events: none;
}
.continuous-story .hotspot-callout button > span::before {
  inset: -8px;
  border: 1px solid rgba(113, 235, 241, .75);
  border-radius: 50%;
  opacity: 0;
}
.continuous-story .hotspot-callout button > span::after {
  right: -9px;
  top: -10px;
  width: 13px;
  height: 13px;
  background:
    linear-gradient(
      90deg,
      transparent 43%,
      white 44% 56%,
      transparent 57%),
    linear-gradient(
      0deg,
      transparent 43%,
      white 44% 56%,
      transparent 57%);
  filter: drop-shadow(0 0 5px rgba(113, 235, 241, .95));
  opacity: 0;
  transform: scale(.35) rotate(0);
}
.continuous-story.stage-hotspots .hotspot-callout button > span::before {
  animation: hotspot-ring 1.7s ease-out infinite;
  animation-delay: var(--callout-delay);
}
.continuous-story.stage-hotspots .hotspot-callout button > span::after {
  animation: hotspot-spark 1.7s ease-in-out infinite;
  animation-delay: var(--callout-delay);
}
.continuous-story.stage-hotspots .callout-target {
  animation: target-ping 1.7s ease-out infinite;
  animation-delay: var(--callout-delay);
}
.continuous-story .callout-line-x::after {
  position: absolute;
  top: -5px;
  width: 9px;
  height: 9px;
  border-top: 2px solid #abebf0;
  border-right: 2px solid #abebf0;
  filter: drop-shadow(0 0 4px rgba(8, 182, 203, .7));
  content: "";
}
.continuous-story .hotspot-callout.arrow-right .callout-line-x::after {
  right: -1px;
  transform: rotate(45deg);
}
.continuous-story .hotspot-callout.arrow-left .callout-line-x::after {
  left: -1px;
  transform: rotate(-135deg);
}
.continuous-story .hotspot-callout button > span {
  color: white;
  font-size: 1.05rem;
  font-weight: 900;
}
@keyframes hotspot-ring {
  0%, 38% {
    opacity: 0;
    transform: scale(.72);
  }
  50% {
    opacity: .9;
  }
  100% {
    opacity: 0;
    transform: scale(1.45);
  }
}
@keyframes hotspot-spark {
  0%, 35%, 100% {
    opacity: 0;
    transform: scale(.35) rotate(0);
  }
  48% {
    opacity: 1;
    transform: scale(1.15) rotate(45deg);
  }
  62% {
    opacity: 0;
    transform: scale(.65) rotate(90deg);
  }
}
@keyframes target-ping {
  0%, 45% {
    box-shadow: 0 0 0 5px rgba(8, 182, 203, .18), 0 0 18px rgba(8, 182, 203, .55);
  }
  100% {
    box-shadow: 0 0 0 15px rgba(8, 182, 203, 0), 0 0 32px rgba(8, 182, 203, .15);
  }
}
.continuous-story .anatomy-guide {
  opacity: 0;
  transform: translateY(-18px);
  transition: opacity .7s ease .55s, transform .85s cubic-bezier(.2, .75, .16, 1) .55s;
}
.continuous-story.stage-hotspots .anatomy-guide {
  opacity: 1;
  transform: translateY(0);
}
.continuous-story.stage-unfolded .anatomy-guide {
  opacity: 0;
  transform: translateY(-14px);
  transition-delay: 0s;
}
.continuous-story .layer-plane {
  opacity: 0;
  transform: scale(.58);
  transition: opacity .52s ease .16s, transform 1.35s cubic-bezier(.16, .78, .18, 1) .12s;
}
.continuous-story.stage-unfolded .layer-plane {
  opacity: 1;
  transform: scale(1);
}
.continuous-story .material-strip {
  left: var(--layer-folded-left);
  width: 18%;
  height: 56%;
  transform: translate(-50%, -50%) rotateY(var(--layer-folded-rotate));
  transition:
    left 1.4s cubic-bezier(.16, .78, .18, 1) var(--layer-delay),
    width 1.4s cubic-bezier(.16, .78, .18, 1) var(--layer-delay),
    height 1.4s cubic-bezier(.16, .78, .18, 1) var(--layer-delay),
    transform 1.4s cubic-bezier(.16, .78, .18, 1) var(--layer-delay);
}
.continuous-story.stage-unfolded .material-strip {
  left: var(--layer-open-left);
  width: 13%;
  height: 50%;
  transform: translate(-50%, -50%) rotateY(0);
}
.continuous-story .material-strip > b {
  opacity: 0;
  transform: translate(-50%, -8px);
  transition: opacity .5s ease calc(.78s + var(--layer-delay)), transform .6s ease calc(.78s + var(--layer-delay));
}
.continuous-story.stage-unfolded .material-strip > b {
  opacity: 1;
  transform: translate(-50%, 0);
}
.continuous-story .operation-guide,
.continuous-story .operation-log-panel,
.continuous-story .flow-system,
.continuous-story .cycle-button,
.continuous-story .story-note {
  opacity: 0;
  transition: opacity .65s ease 1.05s, transform .75s ease 1.05s;
}
.continuous-story .operation-guide {
  transform: translateY(-15px);
}
.continuous-story.stage-unfolded .operation-guide,
.continuous-story.stage-unfolded .operation-log-panel,
.continuous-story.stage-unfolded .flow-system,
.continuous-story.stage-unfolded .cycle-button,
.continuous-story.stage-unfolded .story-note {
  opacity: 1;
}
.continuous-story.stage-unfolded .operation-guide {
  transform: translateY(0);
}
.continuous-story .discharge-button {
  opacity: 0;
}
.continuous-story.stage-unfolded .discharge-button {
  opacity: 1;
}
.continuous-story.stage-unfolded .battery-machine.has-charged .discharge-button {
  opacity: 1;
}
.continuous-story .scroll-cue {
  opacity: 0;
  transition: opacity .45s ease;
}
.continuous-story.stage-intro .scroll-cue,
.continuous-story.stage-hotspots .scroll-cue {
  opacity: 1;
}
@media (max-width: 820px) {
  .continuous-story {
    height: 100svh;
    min-height: 580px;
  }
  .continuous-story .battery-machine {
    left: 35%;
    width: min(108vw, 720px);
  }
  .continuous-story.stage-hotspots .battery-machine,
  .continuous-story.stage-unfolded .battery-machine {
    left: 50%;
  }
}
@media (max-width: 560px) {
  .continuous-story {
    height: 100svh;
    min-height: 560px;
  }
  .continuous-story .battery-machine {
    left: 35%;
    width: 100vw;
    height: min(68svh, 570px);
  }
  .continuous-story.stage-hotspots .battery-machine,
  .continuous-story.stage-unfolded .battery-machine {
    left: 50%;
  }
  .continuous-story.stage-hotspots .battery-render-frame {
    transform: translate(-50%, -50%) scale(1.08);
  }
  .continuous-story.stage-unfolded .material-strip {
    width: 13%;
    height: 46%;
  }
  .continuous-story .material-strip > b {
    font-size: .56rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .continuous-story .battery-machine,
  .continuous-story .battery-render-frame,
  .continuous-story .hotspot-callout,
  .continuous-story .anatomy-guide,
  .continuous-story .layer-plane,
  .continuous-story .material-strip,
  .continuous-story .material-strip > b,
  .continuous-story .operation-guide,
  .continuous-story .operation-log-panel,
  .continuous-story .flow-system,
  .continuous-story .cycle-button,
  .continuous-story .story-note {
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
  .continuous-story.stage-hotspots .hotspot-callout button > span,
  .continuous-story.stage-hotspots .hotspot-callout button > span::before,
  .continuous-story.stage-hotspots .hotspot-callout button > span::after,
  .continuous-story.stage-hotspots .callout-target {
    animation: none;
  }
}
.continuous-story .battery-render-frame {
  width: min(100%, 1080px);
  height: auto;
  aspect-ratio: 1024 / 483;
}
.continuous-story .callout-line {
  position: absolute;
  left: var(--line-left);
  top: var(--line-top);
  display: block;
  width: var(--line-width);
  height: var(--line-height);
  opacity: .9;
}
.continuous-story .hotspot-callout.line-down-right .callout-line {
  background:
    linear-gradient(
      to bottom left,
      transparent calc(50% - .7px),
      rgba(171, 235, 240, .95) calc(50% - .7px) calc(50% + .7px),
      transparent calc(50% + .7px));
}
.continuous-story .hotspot-callout.line-down-left .callout-line {
  background:
    linear-gradient(
      to bottom right,
      transparent calc(50% - .7px),
      rgba(171, 235, 240, .95) calc(50% - .7px) calc(50% + .7px),
      transparent calc(50% + .7px));
}
.continuous-story .hotspot-callout button > span {
  color: var(--cyan);
  font-size: 1.3rem;
  font-weight: 400;
}
.flat-cell-outline {
  position: absolute;
  inset: 17% 3% 13%;
  z-index: 10;
  border: 2px solid rgba(218, 233, 239, .82);
  border-radius: 46px 24px 46px 24px;
  box-shadow:
    inset 0 0 0 6px rgba(255, 255, 255, .035),
    inset 0 -24px 42px rgba(8, 182, 203, .08),
    0 24px 48px rgba(0, 0, 0, .28);
  opacity: 0;
  transform: scale(.7);
  transition: opacity .55s ease .5s, transform 1.1s cubic-bezier(.16, .78, .18, 1) .35s;
  pointer-events: none;
}
.flat-cell-outline::before {
  position: absolute;
  left: 6%;
  right: 6%;
  bottom: 9%;
  height: 1px;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(255, 255, 255, .48),
      transparent);
  content: "";
}
.flat-cell-outline i {
  position: absolute;
  right: 6%;
  top: -16px;
  display: grid;
  width: 34px;
  height: 32px;
  place-items: center;
  border: 2px solid rgba(218, 233, 239, .82);
  border-bottom: 0;
  border-radius: 9px 9px 0 0;
  background: #12232d;
  color: var(--cyan);
  font-size: 1rem;
  font-style: normal;
  font-weight: 900;
}
.continuous-story.stage-unfolded .flat-cell-outline {
  opacity: 1;
  transform: scale(1);
}
.electrolyte-carpet {
  position: absolute;
  left: 8%;
  right: 8%;
  bottom: 16%;
  z-index: 2;
  height: 29%;
  border: 1px solid rgba(114, 235, 241, .55);
  border-radius: 10px 10px 28px 28px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(166, 246, 247, .14) 0 2px,
      transparent 2px 12px),
    linear-gradient(
      180deg,
      rgba(39, 188, 202, .6),
      rgba(7, 89, 112, .42));
  box-shadow: inset 0 0 24px rgba(124, 244, 245, .16), 0 18px 30px rgba(0, 0, 0, .24);
  opacity: 0;
  transform: perspective(560px) rotateX(68deg) scale(.62);
  transform-origin: 50% 100%;
  transition: opacity .55s ease .48s, transform 1.1s cubic-bezier(.16, .78, .18, 1) .38s;
}
.electrolyte-carpet b {
  position: absolute;
  left: 50%;
  bottom: 12%;
  padding: 5px 9px;
  background: rgba(7, 16, 24, .78);
  color: #9af2f3;
  font-size: .68rem;
  white-space: nowrap;
  transform: translateX(-50%) rotateX(-22deg);
}
.continuous-story.stage-unfolded .electrolyte-carpet {
  opacity: 1;
  transform: perspective(560px) rotateX(68deg) scale(1);
}
.continuous-story.stage-unfolded .material-strip {
  left: var(--layer-open-left);
  top: 47%;
  width: var(--layer-open-width);
  height: 47%;
  border-radius: 26px 9px 18px 8px;
}
.continuous-story.stage-unfolded .material-strip.plane-separator {
  border-color: rgba(255, 255, 255, .78);
  border-radius: 12px 4px 10px 4px;
  box-shadow: -3px 10px 13px rgba(0, 0, 0, .2), inset 3px 0 7px rgba(255, 255, 255, .16);
}
.energy-meter {
  position: absolute;
  left: 50%;
  top: -24px;
  z-index: 5;
  width: 66px;
  height: 31px;
  overflow: visible;
  border: 2px solid rgba(225, 239, 244, .9);
  border-radius: 6px;
  background: #0a1720;
  box-shadow: 0 0 0 7px rgba(7, 16, 24, .75), 0 0 24px rgba(8, 182, 203, .18);
  transform: translateX(-50%);
}
.energy-meter::after {
  position: absolute;
  right: -7px;
  top: 8px;
  width: 5px;
  height: 11px;
  border-radius: 0 3px 3px 0;
  background: rgba(225, 239, 244, .9);
  content: "";
}
.energy-fill {
  position: absolute;
  left: 3px;
  top: 3px;
  bottom: 3px;
  width: 34%;
  border-radius: 3px;
  background:
    linear-gradient(
      90deg,
      #087e91,
      #55e0e7);
  box-shadow: 0 0 16px rgba(85, 224, 231, .5);
}
.energy-meter > b {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: grid;
  place-items: center;
  color: white;
  font-size: 1.05rem;
  filter: drop-shadow(0 0 5px rgba(255, 255, 255, .6));
}
.battery-machine.has-charged .energy-fill {
  width: calc(100% - 6px);
}
.battery-machine.discharge.has-discharged .energy-fill {
  width: 10%;
}
.battery-machine.charge.is-running .energy-fill {
  animation: meter-charge 2.8s linear both;
}
.battery-machine.discharge.is-running .energy-fill {
  animation: meter-discharge 2.8s linear both;
}
.battery-machine.charge.is-running .energy-meter > b {
  animation: meter-pulse .75s ease-in-out infinite;
}
.battery-machine.discharge.is-running .energy-meter > b {
  animation: meter-flash .34s ease-in-out infinite alternate;
}
@keyframes meter-charge {
  from {
    width: 10%;
  }
  to {
    width: calc(100% - 6px);
  }
}
@keyframes meter-discharge {
  from {
    width: calc(100% - 6px);
  }
  to {
    width: 10%;
  }
}
@keyframes meter-pulse {
  50% {
    color: #8cf6f7;
    filter: drop-shadow(0 0 9px #8cf6f7);
    transform: scale(1.08);
  }
}
@keyframes meter-flash {
  from {
    color: white;
    filter: drop-shadow(0 0 4px white);
  }
  to {
    color: #ffd452;
    filter: drop-shadow(0 0 14px #ffd452);
    transform: scale(1.18);
  }
}
@media (max-width: 820px) {
  .continuous-story .battery-render-frame {
    width: min(112vw, 860px);
  }
  .flat-cell-outline {
    inset: 19% 2% 14%;
  }
}
@media (max-width: 560px) {
  .continuous-story .battery-render-frame {
    width: 112vw;
  }
  .continuous-story.stage-hotspots .battery-render-frame {
    transform: translate(-50%, -50%) scale(1);
  }
  .hotspot-callout button > b {
    min-width: 58px;
    padding: 6px;
    font-size: .61rem;
  }
  .flat-cell-outline {
    inset: 22% 2% 14%;
    border-radius: 28px 14px 28px 14px;
  }
  .flat-cell-outline i {
    right: 5%;
    top: -13px;
    width: 28px;
    height: 27px;
  }
  .continuous-story.stage-unfolded .material-strip {
    height: 43%;
  }
  .electrolyte-carpet {
    bottom: 17%;
    height: 25%;
  }
  .energy-meter {
    width: 58px;
    height: 28px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .flat-cell-outline,
  .electrolyte-carpet {
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
  .battery-machine.charge.is-running .energy-fill,
  .battery-machine.discharge.is-running .energy-fill,
  .battery-machine.charge.is-running .energy-meter > b,
  .battery-machine.discharge.is-running .energy-meter > b {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
.continuous-story .battery-render-frame {
  width: min(78vw, 900px);
  aspect-ratio: 1068 / 808;
}
.continuous-story .battery-machine {
  transition-property:
    left,
    top,
    filter,
    opacity;
}
.continuous-story.stage-hotspots .battery-machine {
  top: 64%;
}
.continuous-story .anatomy-guide {
  left: 50%;
  top: 76px;
  display: grid;
  width: min(88vw, 820px);
  grid-template-columns: auto minmax(220px, .8fr) minmax(280px, 1.2fr);
  align-items: center;
  gap: 16px;
  padding: 13px 18px;
  transform: translate(-50%, -18px);
}
.continuous-story .anatomy-guide h2 {
  margin: 0;
  font-size: clamp(1.25rem, 2.3vw, 2rem);
}
.continuous-story .anatomy-guide p {
  font-size: .78rem;
  line-height: 1.55;
}
.continuous-story.stage-hotspots .anatomy-guide {
  transform: translate(-50%, 0);
}
.continuous-story.stage-unfolded .anatomy-guide {
  transform: translate(-50%, -14px);
}
.flat-cell-outline {
  inset: 22% 4% 18%;
  border: 2px solid rgba(218, 233, 239, .86);
  border-radius: 999px;
  background: transparent;
  box-shadow:
    inset 0 0 0 7px rgba(255, 255, 255, .025),
    inset 0 0 36px rgba(8, 182, 203, .08),
    0 22px 48px rgba(0, 0, 0, .3);
}
.flat-cell-outline::before,
.flat-cell-outline::after {
  position: absolute;
  top: 7%;
  bottom: 7%;
  width: 26px;
  height: auto;
  border: 1px solid rgba(231, 241, 245, .7);
  border-radius: 50%;
  background:
    linear-gradient(
      90deg,
      #223843,
      #dbe8ec 45%,
      #536b77 72%,
      #132631);
  box-shadow: inset 4px 0 8px rgba(255, 255, 255, .16), inset -5px 0 8px rgba(0, 0, 0, .26);
  content: "";
}
.flat-cell-outline::before {
  left: -10px;
  right: auto;
}
.flat-cell-outline::after {
  right: -10px;
  left: auto;
}
.flat-cell-outline i {
  left: -17px;
  right: auto;
  top: 50%;
  width: 28px;
  height: 38px;
  border: 2px solid rgba(218, 233, 239, .86);
  border-radius: 9px 0 0 9px;
  transform: translate(-50%, -50%);
}
.electrolyte-field {
  position: absolute;
  inset: 28% 8% 25%;
  z-index: 1;
  overflow: hidden;
  border: 1px solid rgba(114, 235, 241, .48);
  border-radius: 999px;
  background:
    repeating-linear-gradient(
      90deg,
      rgba(170, 246, 247, .09) 0 2px,
      transparent 2px 13px),
    linear-gradient(
      90deg,
      rgba(15, 102, 126, .72),
      rgba(44, 194, 205, .42) 48%,
      rgba(8, 94, 117, .68));
  box-shadow: inset 0 0 28px rgba(123, 242, 244, .13);
  opacity: 0;
  transform: scaleX(.58);
  transition: opacity .5s ease .42s, transform 1.05s cubic-bezier(.16, .78, .18, 1) .34s;
}
.electrolyte-field::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, .16),
      transparent 35%,
      rgba(0, 0, 0, .12));
  content: "";
}
.electrolyte-field b {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 2;
  padding: 5px 10px;
  border-radius: 14px;
  background: rgba(7, 16, 24, .76);
  color: #9af2f3;
  font-size: .68rem;
  white-space: nowrap;
  transform: translate(-50%, -50%);
}
.continuous-story.stage-unfolded .electrolyte-field {
  opacity: 1;
  transform: scaleX(1);
}
.continuous-story.stage-unfolded .material-strip {
  top: 49%;
  height: 41%;
  border-radius: 999px 18px 18px 999px;
}
.continuous-story.stage-unfolded .material-strip.plane-separator {
  height: 44%;
  border-radius: 8px;
}
.continuous-story .flow-system {
  z-index: 0;
}
.cycle-meter {
  top: 22%;
  z-index: 26;
  opacity: 0;
  transition: opacity .55s ease .9s;
  pointer-events: none;
}
.continuous-story.stage-unfolded .cycle-meter {
  opacity: 1;
}
.continuous-story .discharge-button {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
}
.continuous-story.stage-unfolded .discharge-button {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.charge.is-running .electron-circuit i {
  animation: circuit-right 2.8s linear var(--particle-delay) 1 both;
}
.discharge.is-running .electron-circuit i {
  animation: circuit-left 2.8s linear var(--particle-delay) 1 both;
}
.charge.is-running .ion-path i {
  animation: ion-right-flat 2.48s linear var(--particle-delay) 1 both;
}
.discharge.is-running .ion-path i {
  animation: ion-left-flat 2.48s linear var(--particle-delay) 1 both;
}
.battery-machine.charge.is-running .energy-fill {
  animation-duration: 4.16s;
}
.battery-machine.discharge.is-running .energy-fill {
  animation-duration: 4.16s;
}
.flow-stop {
  position: absolute;
  z-index: 4;
  padding: 5px 9px;
  border: 1px solid rgba(119, 231, 239, .66);
  border-radius: 14px;
  background: rgba(7, 16, 24, .88);
  color: #a0f1f2;
  font-size: .62rem;
  font-weight: 900;
  white-space: nowrap;
  opacity: 0;
  transition: opacity .3s ease;
}
.battery-machine:not(.is-running) .flow-stop {
  opacity: 1;
}
.electron-stop {
  top: -14px;
}
.ion-stop {
  top: -14px;
}
.flow-stop.charge {
  right: 1%;
}
.flow-stop.discharge {
  left: 1%;
}
@media (max-width: 820px) {
  .continuous-story .battery-render-frame {
    width: min(92vw, 760px);
  }
  .continuous-story .anatomy-guide {
    width: calc(100% - 36px);
    grid-template-columns: auto 1fr;
  }
  .continuous-story .anatomy-guide p {
    grid-column: 1 / -1;
  }
}
@media (max-width: 560px) {
  .continuous-story .battery-render-frame {
    width: 94vw;
  }
  .continuous-story.stage-hotspots .battery-machine {
    top: 63%;
  }
  .continuous-story .anatomy-guide {
    top: 70px;
    width: calc(100% - 28px);
    grid-template-columns: 1fr;
    gap: 6px;
    padding: 11px 14px;
  }
  .continuous-story .anatomy-guide h2 {
    font-size: 1.27rem;
  }
  .continuous-story .anatomy-guide p {
    display: none;
  }
  .flat-cell-outline {
    inset: 25% 3% 19%;
  }
  .electrolyte-field {
    inset: 31% 8% 27%;
  }
  .continuous-story.stage-unfolded .material-strip {
    height: 38%;
  }
  .flow-stop {
    padding: 4px 7px;
    font-size: .56rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .electrolyte-field {
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
}
.continuous-story.stage-unfolded .material-strip {
  top: 49%;
  height: 41%;
}
.continuous-story.stage-unfolded .material-strip.plane-cathode {
  border-radius: 999px 18px 18px 999px;
}
.continuous-story.stage-unfolded .material-strip.plane-anode {
  border-right: 1px solid rgba(255, 255, 255, .28);
  border-left: 5px solid #bd6637;
  border-radius: 18px 999px 999px 18px;
  background:
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, .035) 0 1px,
      transparent 1px 5px),
    linear-gradient(
      270deg,
      #1c2227,
      #424b51 52%,
      #22292e);
  box-shadow: 8px 14px 26px rgba(0, 0, 0, .26), inset -7px 0 14px rgba(255, 255, 255, .08);
}
.flat-cell-outline .terminal-positive,
.flat-cell-outline .terminal-negative {
  top: 50%;
  z-index: 3;
  display: grid;
  height: 52px;
  place-items: center;
  border: 2px solid rgba(229, 241, 245, .94);
  background:
    linear-gradient(
      90deg,
      #20343f,
      #dbe8ec 48%,
      #425c69);
  color: #071018;
  font-size: 1.45rem;
  line-height: 1;
  box-shadow: 0 0 0 5px rgba(7, 16, 24, .68), 0 0 24px rgba(8, 182, 203, .24);
}
.flat-cell-outline .terminal-positive {
  left: -25px;
  right: auto;
  width: 42px;
  border-radius: 13px 0 0 13px;
  transform: translate(-50%, -50%);
}
.flat-cell-outline .terminal-negative {
  left: auto;
  right: -25px;
  width: 34px;
  border-radius: 0 13px 13px 0;
  transform: translate(50%, -50%);
}
.electrolyte-field {
  inset: 28.5% 10.5% 30.5%;
  border-color: rgba(114, 235, 241, .65);
  background:
    repeating-linear-gradient(
      90deg,
      rgba(170, 246, 247, .12) 0 2px,
      transparent 2px 13px),
    linear-gradient(
      90deg,
      rgba(15, 102, 126, .72),
      rgba(44, 194, 205, .48) 48%,
      rgba(8, 94, 117, .7));
}
.electrolyte-field b {
  left: 41%;
  padding: 7px 12px;
  font-size: .82rem;
}
.continuous-story .material-strip > b {
  top: 15px;
  padding: 7px 11px;
  font-size: clamp(.72rem, 1.15vw, .9rem);
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 16px;
  box-shadow: 0 7px 18px rgba(0, 0, 0, .24);
}
.ion-path > span {
  left: 41%;
  padding: 5px 10px;
  font-size: .69rem;
}
.charge-input {
  position: absolute;
  left: 4%;
  top: 49%;
  z-index: 28;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}
.charge-input::before {
  position: absolute;
  right: 2px;
  top: -1px;
  width: 108px;
  border-top: 2px solid rgba(104, 234, 242, .64);
  filter: drop-shadow(0 0 7px rgba(8, 182, 203, .66));
  content: "";
}
.charge-input b {
  position: absolute;
  right: 82px;
  bottom: 18px;
  padding: 5px 8px;
  border-radius: 14px;
  background: rgba(7, 16, 24, .9);
  color: #91eef1;
  font-size: .66rem;
  white-space: nowrap;
}
.charge-input i {
  position: absolute;
  right: 88px;
  top: -12px;
  color: #f8da58;
  font-size: 1rem;
  font-style: normal;
  opacity: 0;
  filter: drop-shadow(0 0 8px rgba(248, 218, 88, .9));
}
.battery-machine.charge.is-running .charge-input {
  opacity: 1;
}
.battery-machine.charge.is-running .charge-input i {
  animation: external-power-in 2.45s ease-in var(--power-delay) 2 both;
}
@keyframes external-power-in {
  0% {
    right: 104px;
    opacity: 0;
    transform: scale(.65);
  }
  18% {
    opacity: 1;
  }
  78% {
    opacity: 1;
  }
  100% {
    right: 3px;
    opacity: 0;
    transform: scale(1.1);
  }
}
.continuous-story.stage-unfolded .cycle-button.is-next-action {
  z-index: 34;
  animation: action-beacon 1.05s ease-in-out infinite;
}
@keyframes action-beacon {
  0%, 100% {
    border-color: rgba(255, 255, 255, .78);
    box-shadow: 0 0 0 0 rgba(8, 182, 203, .2), 0 0 14px rgba(8, 182, 203, .18);
    transform: translateY(0) scale(1);
  }
  50% {
    border-color: #b8ffff;
    background: rgba(3, 38, 50, .98);
    box-shadow: 0 0 0 13px rgba(8, 182, 203, 0), 0 0 42px rgba(8, 182, 203, .82);
    transform: translateY(-4px) scale(1.065);
  }
}
@media (max-width: 560px) {
  .continuous-story.stage-hotspots .hotspot-callout button {
    flex-direction: column;
    gap: 4px;
  }
  .continuous-story.stage-hotspots .hotspot-callout button > span {
    width: 38px;
    height: 38px;
  }
  .continuous-story.stage-hotspots .hotspot-callout button > b {
    min-width: 62px;
    justify-content: center;
    padding: 7px 5px;
    font-size: .64rem;
  }
  .continuous-story.stage-unfolded .material-strip {
    height: 38%;
  }
  .electrolyte-field {
    inset: 30% 10.5% 32%;
  }
  .electrolyte-field b,
  .continuous-story .material-strip > b {
    padding: 6px 8px;
    font-size: .71rem;
  }
  .ion-path > span {
    left: 38%;
    font-size: .58rem;
  }
  .flat-cell-outline .terminal-positive {
    left: -17px;
    width: 36px;
    height: 46px;
  }
  .flat-cell-outline .terminal-negative {
    right: -17px;
    width: 30px;
    height: 46px;
  }
  .charge-input {
    left: 3%;
  }
  .charge-input::before {
    width: 72px;
  }
  .charge-input b {
    right: 52px;
    bottom: 16px;
    font-size: .56rem;
  }
  .charge-input i {
    right: 58px;
  }
  @keyframes external-power-in {
    0% {
      right: 68px;
      opacity: 0;
      transform: scale(.65);
    }
    18% {
      opacity: 1;
    }
    78% {
      opacity: 1;
    }
    100% {
      right: 2px;
      opacity: 0;
      transform: scale(1.05);
    }
  }
}
@media (prefers-reduced-motion: reduce) {
  .battery-machine.charge.is-running .charge-input i,
  .continuous-story.stage-unfolded .cycle-button.is-next-action {
    animation: none;
    box-shadow: 0 0 0 4px rgba(8, 182, 203, .48);
  }
  .battery-machine.charge.is-running .charge-input {
    opacity: 1;
  }
}
.continuous-story .layer-plane {
  perspective: 1200px;
  perspective-origin: 50% 42%;
}
.flat-cell-outline {
  border-color: rgba(225, 239, 244, .92);
  background:
    linear-gradient(
      180deg,
      rgba(242, 249, 251, .22) 0%,
      rgba(146, 177, 189, .08) 17%,
      transparent 32%,
      transparent 62%,
      rgba(0, 0, 0, .26) 78%,
      rgba(221, 238, 244, .12) 100%),
    linear-gradient(
      90deg,
      rgba(210, 231, 238, .08),
      transparent 14% 86%,
      rgba(210, 231, 238, .08));
  box-shadow:
    inset 0 7px 9px rgba(255, 255, 255, .14),
    inset 0 -15px 24px rgba(0, 0, 0, .28),
    inset 0 0 0 7px rgba(255, 255, 255, .025),
    0 28px 50px rgba(0, 0, 0, .42);
  transform: perspective(1000px) rotateX(-3deg) rotateY(13deg) scale(.7);
  transform-origin: 50% 50%;
}
.continuous-story.stage-unfolded .flat-cell-outline {
  transform: perspective(1000px) rotateX(-3deg) rotateY(-2deg) scale(1);
}
.flat-cell-outline::before,
.flat-cell-outline::after {
  top: 4%;
  bottom: 4%;
  width: 38px;
  border-width: 2px;
  background:
    radial-gradient(
      ellipse at 35% 28%,
      rgba(255, 255, 255, .9) 0 5%,
      rgba(186, 205, 213, .72) 17%,
      rgba(74, 99, 112, .88) 50%,
      rgba(20, 38, 49, .98) 76%),
    linear-gradient(
      90deg,
      #243b47,
      #d8e5e9 46%,
      #405866);
  box-shadow:
    inset 7px 0 12px rgba(255, 255, 255, .18),
    inset -9px 0 14px rgba(0, 0, 0, .38),
    0 6px 12px rgba(0, 0, 0, .34);
}
.flat-cell-outline::before {
  left: -18px;
}
.flat-cell-outline::after {
  right: -18px;
}
.electrolyte-field {
  background:
    linear-gradient(
      180deg,
      rgba(213, 252, 253, .3),
      rgba(95, 216, 223, .1) 20%,
      transparent 42%,
      rgba(3, 53, 71, .24) 78%,
      rgba(120, 236, 240, .14)),
    repeating-linear-gradient(
      90deg,
      rgba(170, 246, 247, .11) 0 2px,
      transparent 2px 13px),
    linear-gradient(
      90deg,
      rgba(15, 102, 126, .74),
      rgba(44, 194, 205, .5) 48%,
      rgba(8, 94, 117, .72));
  box-shadow:
    inset 0 8px 10px rgba(222, 253, 254, .14),
    inset 0 -13px 17px rgba(0, 35, 49, .3),
    inset 0 0 28px rgba(123, 242, 244, .14);
}
.continuous-story.stage-unfolded .material-strip {
  transform: translate(-50%, -50%) rotateX(-3deg) translateZ(16px);
  box-shadow:
    -8px 15px 25px rgba(0, 0, 0, .3),
    inset 0 8px 10px rgba(255, 255, 255, .12),
    inset 0 -12px 17px rgba(0, 0, 0, .25);
}
.continuous-story.stage-unfolded .material-strip::before {
  position: absolute;
  top: 3%;
  bottom: 3%;
  z-index: 2;
  width: 17px;
  border: 1px solid rgba(255, 255, 255, .3);
  border-radius: 50%;
  content: "";
}
.continuous-story.stage-unfolded .plane-cathode::before {
  left: -8px;
  background:
    radial-gradient(
      ellipse at 38% 30%,
      #78c4df,
      #327fa3 50%,
      #143e58 82%);
  box-shadow: inset 5px 0 8px rgba(255, 255, 255, .16), inset -5px 0 8px rgba(0, 0, 0, .25);
}
.continuous-story.stage-unfolded .plane-anode::before {
  right: -8px;
  background:
    radial-gradient(
      ellipse at 38% 30%,
      #7b858a,
      #3a4247 50%,
      #171d21 82%);
  box-shadow: inset 5px 0 8px rgba(255, 255, 255, .12), inset -5px 0 8px rgba(0, 0, 0, .34);
}
.continuous-story.stage-unfolded .plane-separator {
  transform: translate(-50%, -50%) rotateX(-3deg) translateZ(23px);
  box-shadow:
    -3px 14px 17px rgba(0, 0, 0, .28),
    inset 3px 0 8px rgba(255, 255, 255, .32),
    inset -3px 0 8px rgba(78, 91, 91, .16);
}
.continuous-story.stage-unfolded .plane-separator::before {
  display: none;
}
@media (max-width: 560px) {
  .flat-cell-outline::before,
  .flat-cell-outline::after {
    width: 28px;
  }
  .flat-cell-outline::before {
    left: -13px;
  }
  .flat-cell-outline::after {
    right: -13px;
  }
  .continuous-story.stage-unfolded .material-strip::before {
    width: 13px;
  }
  .continuous-story.stage-unfolded .plane-cathode::before {
    left: -6px;
  }
  .continuous-story.stage-unfolded .plane-anode::before {
    right: -6px;
  }
}
.continuous-story .layer-plane {
  perspective: none;
  transform-style: flat;
}
.continuous-story .flat-cell-outline {
  inset: 30% 7%;
  z-index: 8;
  overflow: visible;
  border: 1px solid rgba(224, 246, 251, .76);
  border-radius: 999px;
  background:
    linear-gradient(
      180deg,
      rgba(246, 253, 255, .26) 0%,
      rgba(208, 238, 245, .08) 15%,
      transparent 34%,
      transparent 62%,
      rgba(2, 18, 28, .25) 80%,
      rgba(210, 241, 247, .12) 100%),
    linear-gradient(
      90deg,
      rgba(208, 241, 247, .13),
      transparent 12% 88%,
      rgba(208, 241, 247, .13));
  box-shadow:
    inset 0 2px 0 rgba(255, 255, 255, .72),
    inset 0 -2px 0 rgba(113, 184, 201, .28),
    inset 0 14px 25px rgba(236, 252, 255, .09),
    inset 0 -20px 28px rgba(0, 9, 17, .28),
    0 28px 55px rgba(0, 0, 0, .38),
    0 0 38px rgba(8, 182, 203, .08);
  transform: scale(.72);
  transition: opacity .55s ease .45s, transform 1.05s cubic-bezier(.16, .78, .18, 1) .28s;
}
.continuous-story.stage-unfolded .flat-cell-outline {
  transform: scale(1);
}
.continuous-story .flat-cell-outline::before,
.continuous-story .flat-cell-outline::after {
  top: 3%;
  bottom: 3%;
  width: 34px;
  border: 1px solid rgba(232, 248, 252, .8);
  border-radius: 50%;
  background:
    radial-gradient(
      ellipse at 34% 27%,
      rgba(255, 255, 255, .92) 0 4%,
      rgba(177, 211, 220, .72) 17%,
      rgba(55, 86, 101, .88) 50%,
      rgba(9, 26, 38, .98) 78%),
    linear-gradient(
      90deg,
      #203844,
      #d6e8ed 48%,
      #3b5966);
  box-shadow:
    inset 7px 0 12px rgba(255, 255, 255, .2),
    inset -9px 0 14px rgba(0, 0, 0, .42),
    0 5px 13px rgba(0, 0, 0, .38);
}
.continuous-story .flat-cell-outline::before {
  left: -16px;
}
.continuous-story .flat-cell-outline::after {
  right: -16px;
}
.cell-glass-sheen {
  position: absolute;
  inset: 4px 8px;
  z-index: 11;
  border-radius: inherit;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, .2),
      transparent 19% 68%,
      rgba(170, 230, 239, .06)),
    linear-gradient(
      105deg,
      transparent 20%,
      rgba(255, 255, 255, .13) 31%,
      transparent 42%);
  box-shadow: inset 0 0 0 1px rgba(224, 247, 251, .12);
  pointer-events: none;
}
.flat-cell-outline .terminal-positive,
.flat-cell-outline .terminal-negative {
  top: 50%;
  width: 44px;
  height: 56px;
  border: 1px solid rgba(255, 255, 255, .82);
  border-radius: 14px;
  font-family: Arial, sans-serif;
  font-size: 1.55rem;
  font-weight: 900;
  box-shadow:
    0 0 0 5px rgba(7, 16, 24, .72),
    inset 5px 0 9px rgba(255, 255, 255, .2),
    inset -6px 0 9px rgba(0, 0, 0, .24),
    0 8px 18px rgba(0, 0, 0, .35);
}
.flat-cell-outline .terminal-positive {
  left: -27px;
  right: auto;
  border-radius: 14px 5px 5px 14px;
  background:
    linear-gradient(
      90deg,
      #7b5212,
      #f6d76a 38%,
      #c28b28 68%,
      #6d480f);
  color: #241704;
  transform: translate(-50%, -50%);
}
.flat-cell-outline .terminal-negative {
  left: auto;
  right: -27px;
  border-radius: 5px 14px 14px 5px;
  background:
    linear-gradient(
      90deg,
      #344a56,
      #e8f1f3 38%,
      #91a8b2 68%,
      #2b414c);
  color: #18282f;
  transform: translate(50%, -50%);
}
.continuous-story .electrolyte-field {
  inset: 32.5% 12.5%;
  z-index: 1;
  overflow: hidden;
  border: 0;
  border-radius: 999px;
  background:
    radial-gradient(
      ellipse at 50% 14%,
      rgba(191, 252, 255, .24),
      transparent 38%),
    linear-gradient(
      180deg,
      rgba(83, 219, 229, .42),
      rgba(14, 138, 158, .34) 48%,
      rgba(4, 74, 99, .5));
  box-shadow:
    inset 0 10px 17px rgba(217, 253, 255, .15),
    inset 0 -17px 22px rgba(0, 38, 56, .32),
    0 0 28px rgba(8, 182, 203, .14);
  transform: scaleX(.64);
}
.continuous-story.stage-unfolded .electrolyte-field {
  transform: scaleX(1);
}
.continuous-story .electrolyte-field::after {
  z-index: 5;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, .16),
      transparent 22% 72%,
      rgba(0, 0, 0, .15));
}
.liquid-caustic {
  position: absolute;
  inset: 0;
  z-index: 1;
  background:
    repeating-linear-gradient(
      104deg,
      transparent 0 31px,
      rgba(165, 249, 251, .07) 32px 34px,
      transparent 35px 66px),
    radial-gradient(
      ellipse at 35% 42%,
      rgba(125, 239, 243, .12),
      transparent 30%),
    radial-gradient(
      ellipse at 72% 65%,
      rgba(125, 239, 243, .1),
      transparent 28%);
  filter: blur(.2px);
}
.electrolyte-field .electrolyte-bubble {
  position: absolute;
  z-index: 3;
  display: block;
  width: 5px;
  height: 5px;
  border: 1px solid rgba(212, 253, 255, .55);
  border-radius: 50%;
  background: rgba(213, 252, 255, .14);
  box-shadow: inset 1px 1px 2px rgba(255, 255, 255, .38), 0 0 8px rgba(118, 237, 241, .22);
  opacity: .7;
  animation: liquid-float 5.4s ease-in-out calc(var(--bubble-index) * -.31s) infinite alternate;
}
.electrolyte-bubble:nth-of-type(1) {
  left: 12%;
  top: 28%;
}
.electrolyte-bubble:nth-of-type(2) {
  left: 21%;
  top: 68%;
  width: 8px;
  height: 8px;
}
.electrolyte-bubble:nth-of-type(3) {
  left: 30%;
  top: 45%;
  width: 4px;
  height: 4px;
}
.electrolyte-bubble:nth-of-type(4) {
  left: 39%;
  top: 76%;
  width: 6px;
  height: 6px;
}
.electrolyte-bubble:nth-of-type(5) {
  left: 47%;
  top: 25%;
}
.electrolyte-bubble:nth-of-type(6) {
  left: 55%;
  top: 63%;
  width: 7px;
  height: 7px;
}
.electrolyte-bubble:nth-of-type(7) {
  left: 63%;
  top: 38%;
  width: 4px;
  height: 4px;
}
.electrolyte-bubble:nth-of-type(8) {
  left: 70%;
  top: 74%;
}
.electrolyte-bubble:nth-of-type(9) {
  left: 77%;
  top: 29%;
  width: 8px;
  height: 8px;
}
.electrolyte-bubble:nth-of-type(10) {
  left: 84%;
  top: 58%;
  width: 4px;
  height: 4px;
}
.electrolyte-bubble:nth-of-type(11) {
  left: 91%;
  top: 39%;
  width: 6px;
  height: 6px;
}
@keyframes liquid-float {
  to {
    transform: translateY(-8px);
    opacity: .92;
  }
}
.continuous-story.stage-unfolded .material-strip {
  top: 50%;
  height: 35%;
  overflow: hidden;
  border: 0;
  transform: translate(-50%, -50%);
  box-shadow: none;
  filter: saturate(1.1);
}
.continuous-story.stage-unfolded .material-strip::before {
  display: none;
}
.continuous-story.stage-unfolded .material-strip::after {
  inset: 0;
  border-radius: inherit;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, .2),
      transparent 24% 68%,
      rgba(0, 0, 0, .14));
}
.continuous-story.stage-unfolded .material-strip.plane-cathode {
  border-radius: 999px 24% 24% 999px;
  background:
    radial-gradient(
      circle at 24% 35%,
      rgba(146, 219, 246, .18) 0 2px,
      transparent 3px) 0 0 / 13px 13px,
    linear-gradient(
      90deg,
      rgba(23, 69, 109, .96),
      rgba(40, 133, 174, .78) 55%,
      rgba(71, 185, 207, .14));
  -webkit-mask-image:
    linear-gradient(
      90deg,
      #000 0 76%,
      rgba(0, 0, 0, .76) 89%,
      transparent 100%);
  mask-image:
    linear-gradient(
      90deg,
      #000 0 76%,
      rgba(0, 0, 0, .76) 89%,
      transparent 100%);
}
.continuous-story.stage-unfolded .material-strip.plane-anode {
  border: 0;
  border-radius: 24% 999px 999px 24%;
  background:
    radial-gradient(
      circle at 76% 35%,
      rgba(255, 255, 255, .08) 0 2px,
      transparent 3px) 0 0 / 12px 12px,
    linear-gradient(
      90deg,
      rgba(67, 91, 98, .12),
      rgba(48, 57, 64, .84) 45%,
      rgba(13, 20, 25, .97));
  box-shadow: none;
  -webkit-mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0, 0, 0, .76) 11%,
      #000 24% 100%);
  mask-image:
    linear-gradient(
      90deg,
      transparent 0%,
      rgba(0, 0, 0, .76) 11%,
      #000 24% 100%);
}
.continuous-story.stage-unfolded .material-strip.plane-separator {
  height: 37%;
  overflow: visible;
  border: 0;
  border-radius: 999px;
  background:
    radial-gradient(
      circle,
      rgba(14, 48, 57, .5) 0 1px,
      transparent 1.4px) 0 0 / 7px 7px,
    linear-gradient(
      90deg,
      rgba(223, 247, 247, .32),
      rgba(255, 255, 255, .72) 50%,
      rgba(201, 236, 237, .3));
  box-shadow:
    inset 2px 0 4px rgba(255, 255, 255, .34),
    inset -2px 0 4px rgba(11, 47, 57, .12),
    0 0 16px rgba(190, 247, 248, .2);
  opacity: .76;
  -webkit-backdrop-filter: blur(2px);
  backdrop-filter: blur(2px);
  transform: translate(-50%, -50%);
}
.cell-label-row {
  position: absolute;
  left: 18%;
  right: 18%;
  top: 82%;
  z-index: 24;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: center;
  transform: translateY(-50%);
}
.cell-label-row span {
  position: relative;
  justify-self: center;
  padding: 6px 10px;
  border: 1px solid rgba(180, 225, 232, .16);
  border-radius: 999px;
  background: rgba(7, 19, 28, .72);
  color: #dcecf0;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: -.02em;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .05);
  backdrop-filter: blur(8px);
}
.cell-label-row span:nth-child(3) {
  padding-inline: 7px;
  font-size: .63rem;
}
.continuous-story .flow-system {
  z-index: 18;
}
.electron-circuit {
  left: 10%;
  right: 10%;
  top: 24%;
  height: 2px;
  border: 0;
  border-radius: 0;
  background:
    linear-gradient(
      90deg,
      rgba(139, 184, 194, .2),
      rgba(187, 231, 238, .72) 13% 87%,
      rgba(139, 184, 194, .2));
  box-shadow: 0 0 8px rgba(112, 211, 221, .18);
}
.electron-circuit::before,
.electron-circuit::after {
  position: absolute;
  top: 0;
  width: 1px;
  height: 26vh;
  max-height: 178px;
  background:
    linear-gradient(
      180deg,
      rgba(183, 226, 233, .6),
      rgba(97, 190, 203, .22) 68%,
      transparent);
  content: "";
}
.electron-circuit::before {
  left: 0;
}
.electron-circuit::after {
  right: 0;
}
.electron-circuit i,
.ion-path i {
  display: none;
  place-items: center;
  border: 1px solid rgba(255, 255, 255, .86);
  border-radius: 50%;
  color: white;
  font-family: Arial, sans-serif;
  font-style: normal;
  font-weight: 800;
}
.electron-circuit i {
  top: -13px;
  width: 26px;
  height: 26px;
  background:
    radial-gradient(
      circle at 35% 30%,
      #fff2bd 0 8%,
      #ffc857 28%,
      #d97a24 62%,
      #74330b 100%);
  font-size: .55rem;
  box-shadow:
    0 0 7px #f5b344,
    0 0 20px rgba(245, 179, 68, .68),
    inset -4px -5px 7px rgba(87, 34, 2, .32);
}
.ion-path {
  left: 18%;
  right: 18%;
  top: 50%;
  z-index: 19;
  height: 2px;
  border-radius: 2px;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(119, 242, 244, .44) 12% 88%,
      transparent);
  box-shadow: 0 0 10px rgba(8, 182, 203, .22);
}
.ion-path > span {
  left: 39%;
  top: 17px;
  z-index: 5;
  padding: 6px 11px;
  border: 1px solid rgba(124, 235, 239, .22);
  border-radius: 999px;
  background: rgba(3, 42, 56, .68);
  color: #adf7f7;
  font-size: .68rem;
  letter-spacing: -.02em;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .07), 0 6px 16px rgba(0, 0, 0, .14);
  backdrop-filter: blur(7px);
}
.ion-path i {
  top: -13px;
  width: 27px;
  height: 27px;
  background:
    radial-gradient(
      circle at 34% 28%,
      #e9ffff 0 8%,
      #68eff1 28%,
      #08b6cb 60%,
      #045b76 100%);
  font-size: .48rem;
  box-shadow:
    0 0 7px #63eef0,
    0 0 22px rgba(8, 182, 203, .78),
    inset -4px -5px 7px rgba(1, 68, 89, .34);
}
.is-running .electron-circuit i,
.is-running .ion-path i {
  display: grid;
  opacity: 1;
}
.cycle-meter {
  left: 50%;
  top: 24%;
  z-index: 27;
  width: 92px;
  height: 38px;
  border: 1px solid rgba(197, 239, 245, .72);
  border-radius: 12px;
  background:
    linear-gradient(
      180deg,
      rgba(20, 47, 59, .96),
      rgba(5, 20, 29, .98));
  box-shadow:
    0 0 0 7px rgba(7, 16, 24, .78),
    inset 0 1px 0 rgba(255, 255, 255, .16),
    0 0 26px rgba(8, 182, 203, .26);
  transform: translate(-50%, -50%);
}
.cycle-meter::before {
  position: absolute;
  inset: 5px;
  z-index: 2;
  border-radius: 7px;
  background:
    repeating-linear-gradient(
      90deg,
      transparent 0 11px,
      rgba(4, 17, 24, .68) 11px 14px);
  content: "";
  pointer-events: none;
}
.cycle-meter::after {
  right: -8px;
  top: 11px;
  width: 6px;
  height: 15px;
}
.energy-fill {
  left: 5px;
  top: 5px;
  bottom: 5px;
  border-radius: 7px;
  background:
    linear-gradient(
      90deg,
      #007d96,
      #13c9d6 56%,
      #99fbf2);
  box-shadow: 0 0 18px rgba(63, 235, 236, .55), inset 0 1px 0 rgba(255, 255, 255, .34);
}
.energy-meter > b {
  font-size: .95rem;
}
.charge-input {
  left: 10%;
  top: 24%;
  z-index: 29;
}
.charge-input::before {
  right: 0;
  top: 0;
  width: 96px;
  border-top-color: rgba(246, 205, 94, .5);
}
.charge-input b {
  right: 72px;
  bottom: 17px;
}
.charge-input i {
  right: 78px;
  top: -7px;
  width: 14px;
  height: 14px;
  border: 1px solid rgba(255, 249, 210, .88);
  border-radius: 50%;
  background:
    radial-gradient(
      circle at 35% 30%,
      white,
      #ffd15d 36%,
      #c96b16 78%);
  box-shadow: 0 0 8px #ffc857, 0 0 20px rgba(255, 200, 87, .72);
}
@keyframes external-power-in {
  0% {
    right: 104px;
    opacity: 0;
    transform: scale(.6);
  }
  18% {
    opacity: 1;
  }
  78% {
    opacity: 1;
  }
  100% {
    right: 2px;
    opacity: 0;
    transform: scale(1.08);
  }
}
.cycle-button {
  top: 82%;
  transform: translateY(-50%);
}
@keyframes action-spark {
  0%, 100% {
    border-color: rgba(255, 255, 255, .72);
    box-shadow: 0 0 0 0 rgba(8, 182, 203, .08), 0 0 12px rgba(8, 182, 203, .12);
    transform: translateY(-50%);
  }
  50% {
    border-color: #8af4f5;
    box-shadow: 0 0 0 10px rgba(8, 182, 203, 0), 0 0 34px rgba(8, 182, 203, .62);
    transform: translateY(calc(-50% - 4px)) scale(1.035);
  }
}
@media (max-width: 560px) {
  .continuous-story.stage-hotspots .battery-machine {
    top: 57%;
  }
  .continuous-story .flat-cell-outline {
    inset: 31% 8%;
  }
  .continuous-story .electrolyte-field {
    inset: 33% 12.5%;
  }
  .continuous-story.stage-unfolded .material-strip {
    top: 50%;
    height: 34%;
  }
  .continuous-story.stage-unfolded .material-strip.plane-separator {
    height: 36%;
  }
  .continuous-story .flat-cell-outline::before,
  .continuous-story .flat-cell-outline::after {
    width: 25px;
  }
  .continuous-story .flat-cell-outline::before {
    left: -12px;
  }
  .continuous-story .flat-cell-outline::after {
    right: -12px;
  }
  .flat-cell-outline .terminal-positive,
  .flat-cell-outline .terminal-negative {
    width: 34px;
    height: 46px;
    font-size: 1.22rem;
  }
  .flat-cell-outline .terminal-positive {
    left: -18px;
  }
  .flat-cell-outline .terminal-negative {
    right: -18px;
  }
  .electron-circuit {
    left: 9%;
    right: 9%;
    top: 24%;
    height: 2px;
  }
  .electron-circuit::before,
  .electron-circuit::after {
    height: 23vh;
    max-height: 128px;
  }
  .electron-circuit i {
    top: -11px;
    width: 22px;
    height: 22px;
    font-size: .48rem;
  }
  .ion-path {
    left: 17%;
    right: 17%;
    top: 50%;
  }
  .ion-path i {
    top: -11px;
    width: 23px;
    height: 23px;
    font-size: .42rem;
  }
  .ion-path > span {
    left: 37%;
    top: 15px;
    padding: 5px 8px;
    font-size: .56rem;
  }
  .cycle-meter {
    top: 24%;
    width: 76px;
    height: 33px;
  }
  .cycle-meter::after {
    top: 9px;
    height: 13px;
  }
  .charge-input {
    left: 9%;
    top: 24%;
  }
  .charge-input::before {
    width: 68px;
  }
  .charge-input b {
    right: 50px;
    bottom: 15px;
    font-size: .53rem;
  }
  .charge-input i {
    right: 55px;
    width: 12px;
    height: 12px;
  }
  @keyframes external-power-in {
    0% {
      right: 72px;
      opacity: 0;
      transform: scale(.6);
    }
    18% {
      opacity: 1;
    }
    78% {
      opacity: 1;
    }
    100% {
      right: 2px;
      opacity: 0;
      transform: scale(1.05);
    }
  }
  .cell-label-row {
    left: 19%;
    right: 19%;
    top: 82%;
  }
  .cell-label-row span {
    padding: 5px 5px;
    font-size: .58rem;
  }
  .cell-label-row span:nth-child(3) {
    padding-inline: 4px;
    font-size: .5rem;
  }
  .cycle-button {
    top: 82%;
    min-width: 66px;
    min-height: 40px;
    padding: 7px 8px;
  }
  .charge-button {
    left: 1.5%;
  }
  .discharge-button {
    right: 1.5%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .electrolyte-field .electrolyte-bubble {
    animation: none;
  }
}
.continuous-story.stage-unfolded .material-strip.plane-cathode,
.continuous-story.stage-unfolded .material-strip.plane-anode {
  top: 50%;
  height: 35%;
  overflow: visible;
}
.continuous-story.stage-unfolded .material-strip.plane-cathode {
  border-radius: 999px 44% 44% 999px / 50% 38% 38% 50%;
  background:
    radial-gradient(
      ellipse at 21% 31%,
      rgba(185, 235, 251, .2) 0 2px,
      transparent 3px) 0 0 / 13px 13px,
    linear-gradient(
      90deg,
      rgba(18, 57, 96, .98),
      rgba(31, 123, 167, .86) 48%,
      rgba(70, 193, 213, .35) 79%,
      rgba(86, 211, 222, .09));
  -webkit-mask-image:
    radial-gradient(
      ellipse 27% 65% at 104% 50%,
      transparent 0 48%,
      rgba(0, 0, 0, .7) 53%,
      #000 66%);
  mask-image:
    radial-gradient(
      ellipse 27% 65% at 104% 50%,
      transparent 0 48%,
      rgba(0, 0, 0, .7) 53%,
      #000 66%);
}
.continuous-story.stage-unfolded .material-strip.plane-anode {
  border-radius: 44% 999px 999px 44% / 38% 50% 50% 38%;
  background:
    radial-gradient(
      ellipse at 79% 31%,
      rgba(255, 255, 255, .1) 0 2px,
      transparent 3px) 0 0 / 12px 12px,
    linear-gradient(
      90deg,
      rgba(82, 104, 110, .08),
      rgba(66, 78, 84, .34) 21%,
      rgba(42, 50, 56, .88) 52%,
      rgba(12, 19, 24, .98));
  -webkit-mask-image:
    radial-gradient(
      ellipse 27% 65% at -4% 50%,
      transparent 0 48%,
      rgba(0, 0, 0, .7) 53%,
      #000 66%);
  mask-image:
    radial-gradient(
      ellipse 27% 65% at -4% 50%,
      transparent 0 48%,
      rgba(0, 0, 0, .7) 53%,
      #000 66%);
}
.continuous-story.stage-unfolded .material-strip.plane-cathode::before,
.continuous-story.stage-unfolded .material-strip.plane-anode::before {
  position: absolute;
  top: 5%;
  bottom: 5%;
  z-index: 4;
  display: block;
  width: 20%;
  border: 1px solid rgba(218, 249, 251, .2);
  border-radius: 50%;
  content: "";
  pointer-events: none;
}
.continuous-story.stage-unfolded .material-strip.plane-cathode::before {
  right: 1%;
  background:
    linear-gradient(
      90deg,
      transparent,
      rgba(116, 226, 234, .16));
  box-shadow: inset -4px 0 9px rgba(177, 247, 248, .09);
}
.continuous-story.stage-unfolded .material-strip.plane-anode::before {
  left: 1%;
  background:
    linear-gradient(
      90deg,
      rgba(175, 202, 208, .12),
      transparent);
  box-shadow: inset 4px 0 9px rgba(211, 233, 236, .07);
}
.continuous-story.stage-unfolded .material-strip.plane-separator {
  width: var(--layer-open-width);
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(17, 54, 61, .58) 0 1.1px,
      transparent 1.6px) 0 0 / 7px 7px,
    linear-gradient(
      90deg,
      rgba(207, 241, 242, .28),
      rgba(255, 255, 255, .74) 48%,
      rgba(196, 233, 235, .25));
}
.flat-cell-outline .terminal-positive::after,
.flat-cell-outline .terminal-negative::after {
  position: absolute;
  top: 50%;
  z-index: -1;
  width: clamp(22px, 5vw, 52px);
  height: 42%;
  border: 1px solid rgba(255, 255, 255, .34);
  content: "";
  transform: translateY(-50%);
}
.flat-cell-outline .terminal-positive::after {
  left: 88%;
  border-radius: 0 999px 999px 0;
  background:
    linear-gradient(
      180deg,
      #f1cf66,
      #9b671b 55%,
      #5f3d0c);
  box-shadow: inset 0 3px 5px rgba(255, 255, 255, .22);
}
.flat-cell-outline .terminal-negative::after {
  right: 88%;
  border-radius: 999px 0 0 999px;
  background:
    linear-gradient(
      180deg,
      #dbe8eb,
      #718894 55%,
      #314752);
  box-shadow: inset 0 3px 5px rgba(255, 255, 255, .2);
}
.component-callouts {
  position: absolute;
  inset: 0;
  z-index: 25;
  pointer-events: none;
}
.component-label {
  position: absolute;
  transform: translate(-50%, -50%);
}
.component-label b {
  display: block;
  padding: 6px 11px;
  border: 1px solid rgba(198, 236, 241, .22);
  border-radius: 999px;
  background: rgba(5, 22, 32, .75);
  color: #e7f4f6;
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: -.02em;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 7px 16px rgba(0, 0, 0, .2);
  backdrop-filter: blur(9px);
}
.component-label i {
  position: absolute;
  left: 50%;
  width: 1px;
  background:
    linear-gradient(
      180deg,
      rgba(196, 238, 243, .58),
      rgba(196, 238, 243, .1));
  transform: translateX(-50%);
}
.component-label i::after {
  position: absolute;
  left: 50%;
  width: 5px;
  height: 5px;
  border: 1px solid rgba(211, 248, 250, .68);
  border-radius: 50%;
  background: #5bced8;
  box-shadow: 0 0 8px rgba(91, 206, 216, .7);
  content: "";
  transform: translateX(-50%);
}
.label-cathode {
  left: 26%;
  top: 43%;
}
.label-cathode i {
  top: 100%;
  height: 24px;
}
.label-cathode i::after {
  bottom: -2px;
}
.label-electrolyte {
  left: 41%;
  top: 62%;
}
.label-electrolyte i {
  bottom: 100%;
  height: 20px;
  background:
    linear-gradient(
      0deg,
      rgba(196, 238, 243, .58),
      rgba(196, 238, 243, .1));
}
.label-electrolyte i::after {
  top: -2px;
}
.label-separator {
  left: 50%;
  top: 39%;
}
.label-separator b {
  padding: 5px 8px;
  font-size: .57rem;
}
.label-separator i {
  top: 100%;
  height: 28px;
}
.label-separator i::after {
  bottom: -2px;
}
.label-anode {
  left: 74%;
  top: 43%;
}
.label-anode i {
  top: 100%;
  height: 24px;
}
.label-anode i::after {
  bottom: -2px;
}
.cycle-button {
  top: 82%;
}
.charge-button {
  left: 27%;
}
.discharge-button {
  right: 27%;
}
.market-number strong {
  display: flex;
  align-items: baseline;
  gap: .12em;
  letter-spacing: -.07em;
}
.market-number strong > span {
  display: inline-block;
  min-width: 3.05ch;
}
.market-number em {
  flex: 0 0 auto;
  margin-left: .04em;
  letter-spacing: 0;
}
@media (max-width: 560px) {
  .continuous-story.stage-unfolded .material-strip.plane-cathode,
  .continuous-story.stage-unfolded .material-strip.plane-anode {
    height: 34%;
  }
  .component-label b {
    padding: 5px 8px;
    font-size: .57rem;
  }
  .label-cathode {
    left: 25%;
    top: 42%;
  }
  .label-cathode i,
  .label-anode i {
    height: 19px;
  }
  .label-electrolyte {
    left: 39%;
    top: 62%;
  }
  .label-electrolyte i {
    height: 15px;
  }
  .label-separator {
    top: 39%;
  }
  .label-separator b {
    padding: 4px 6px;
    font-size: .48rem;
  }
  .label-separator i {
    height: 21px;
  }
  .label-anode {
    left: 75%;
    top: 42%;
  }
  .charge-button {
    left: 18%;
  }
  .discharge-button {
    right: 18%;
  }
  .market-number strong {
    gap: .16em;
    letter-spacing: -.055em;
  }
}
.cell-interior {
  position: absolute;
  inset: 4% 2.5%;
  z-index: 1;
  overflow: hidden;
  border-radius: inherit;
  background: rgba(4, 34, 47, .42);
  box-shadow: inset 0 0 22px rgba(0, 0, 0, .2);
}
.continuous-story .cell-interior .electrolyte-field {
  inset: 0;
  border-radius: inherit;
  transform: scaleX(.64);
  transform-origin: center;
}
.continuous-story.stage-unfolded .cell-interior .electrolyte-field {
  transform: scaleX(1);
}
.continuous-story.stage-unfolded .cell-interior .material-strip {
  top: 50%;
  height: 100%;
  border-radius: 0;
  transform: translate(-50%, -50%);
}
.continuous-story.stage-unfolded .cell-interior .material-strip.plane-cathode {
  border-radius: 999px 24% 24% 999px / 50% 16% 16% 50%;
  background:
    radial-gradient(
      ellipse at 19% 28%,
      rgba(205, 241, 251, .2) 0 2px,
      transparent 3px) 0 0 / 13px 13px,
    linear-gradient(
      90deg,
      rgba(31, 70, 117, .98),
      rgba(30, 123, 170, .9) 52%,
      rgba(62, 196, 213, .46) 82%,
      rgba(80, 212, 222, .08));
  -webkit-mask-image:
    radial-gradient(
      ellipse 23% 61% at 105% 50%,
      transparent 0 45%,
      rgba(0, 0, 0, .72) 51%,
      #000 65%);
  mask-image:
    radial-gradient(
      ellipse 23% 61% at 105% 50%,
      transparent 0 45%,
      rgba(0, 0, 0, .72) 51%,
      #000 65%);
}
.continuous-story.stage-unfolded .cell-interior .material-strip.plane-anode {
  border-radius: 24% 999px 999px 24% / 16% 50% 50% 16%;
  background:
    radial-gradient(
      ellipse at 81% 28%,
      rgba(255, 255, 255, .09) 0 2px,
      transparent 3px) 0 0 / 12px 12px,
    linear-gradient(
      90deg,
      rgba(72, 96, 102, .08),
      rgba(61, 73, 80, .42) 18%,
      rgba(38, 47, 54, .92) 50%,
      rgba(9, 17, 22, .99));
  -webkit-mask-image:
    radial-gradient(
      ellipse 23% 61% at -5% 50%,
      transparent 0 45%,
      rgba(0, 0, 0, .72) 51%,
      #000 65%);
  mask-image:
    radial-gradient(
      ellipse 23% 61% at -5% 50%,
      transparent 0 45%,
      rgba(0, 0, 0, .72) 51%,
      #000 65%);
}
.continuous-story.stage-unfolded .cell-interior .material-strip.plane-separator {
  height: 104%;
  border-radius: 50%;
  background:
    radial-gradient(
      circle,
      rgba(10, 51, 61, .64) 0 1.1px,
      transparent 1.6px) 0 0 / 7px 7px,
    linear-gradient(
      90deg,
      rgba(192, 235, 238, .22),
      rgba(255, 255, 255, .74) 50%,
      rgba(184, 228, 232, .2));
  box-shadow:
    0 0 13px rgba(195, 244, 246, .22),
    inset 2px 0 4px rgba(255, 255, 255, .28),
    inset -2px 0 4px rgba(3, 41, 51, .12);
}
.continuous-story.stage-unfolded .cell-interior .material-strip.plane-cathode::before,
.continuous-story.stage-unfolded .cell-interior .material-strip.plane-anode::before {
  top: 2%;
  bottom: 2%;
  width: 15%;
}
.cell-glass-sheen {
  inset: 3px 6px;
  border: 1px solid rgba(222, 248, 251, .1);
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, .27),
      rgba(255, 255, 255, .05) 14%,
      transparent 31% 69%,
      rgba(129, 212, 224, .08)),
    linear-gradient(
      104deg,
      transparent 17%,
      rgba(255, 255, 255, .14) 28%,
      transparent 39%);
}
.cell-interior .label-cathode {
  left: 24%;
  top: 38%;
}
.cell-interior .label-cathode i {
  height: 22px;
}
.cell-interior .label-electrolyte {
  left: 42%;
  top: 70%;
}
.cell-interior .label-electrolyte i {
  height: 18px;
}
.cell-interior .label-separator {
  left: 50%;
  top: 31%;
}
.cell-interior .label-separator i {
  height: 25px;
}
.cell-interior .label-anode {
  left: 76%;
  top: 38%;
}
.cell-interior .label-anode i {
  height: 22px;
}
.cycle-meter::after {
  left: -8px;
  right: auto;
  border-radius: 3px 0 0 3px;
}
.gauge-polarity {
  position: absolute;
  top: 50%;
  z-index: 5;
  display: grid;
  width: 15px;
  height: 20px;
  place-items: center;
  border-radius: 6px;
  background: rgba(4, 17, 24, .68);
  font-family: Arial, sans-serif;
  font-size: .66rem;
  font-weight: 900;
  line-height: 1;
  transform: translateY(-50%);
}
.gauge-positive {
  left: 6px;
  color: #ffd667;
}
.gauge-negative {
  right: 6px;
  color: #c9e2e7;
}
.cycle-meter .energy-fill {
  padding-inline: 13px;
}
@media (max-width: 560px) {
  .cell-interior {
    inset: 4% 2.5%;
  }
  .continuous-story.stage-unfolded .cell-interior .material-strip {
    height: 100%;
  }
  .cell-interior .component-label b {
    padding: 4px 7px;
    font-size: .52rem;
  }
  .cell-interior .label-cathode {
    left: 23%;
    top: 37%;
  }
  .cell-interior .label-electrolyte {
    left: 41%;
    top: 70%;
  }
  .cell-interior .label-separator {
    top: 30%;
  }
  .cell-interior .label-anode {
    left: 77%;
    top: 37%;
  }
  .gauge-polarity {
    width: 13px;
    height: 17px;
    font-size: .58rem;
  }
  .gauge-positive {
    left: 5px;
  }
  .gauge-negative {
    right: 5px;
  }
}
.continuous-story .flat-cell-outline {
  border-radius: clamp(38px, 5vw, 58px) / 50%;
}
.continuous-story .flat-cell-outline::before,
.continuous-story .flat-cell-outline::after {
  top: 0;
  bottom: 0;
  z-index: 2;
  width: clamp(26px, 3.4vw, 38px);
  border-color: rgba(218, 243, 248, .5);
  background:
    linear-gradient(
      90deg,
      rgba(20, 43, 55, .78),
      rgba(213, 236, 241, .42) 43%,
      rgba(48, 80, 94, .66) 73%,
      rgba(8, 25, 36, .74)),
    radial-gradient(
      ellipse at 38% 26%,
      rgba(255, 255, 255, .5),
      transparent 26%);
  box-shadow:
    inset 6px 0 11px rgba(255, 255, 255, .13),
    inset -7px 0 12px rgba(0, 0, 0, .28),
    0 0 0 1px rgba(214, 241, 246, .08);
}
.continuous-story .flat-cell-outline::before {
  left: clamp(20px, 3.2vw, 34px);
}
.continuous-story .flat-cell-outline::after {
  right: clamp(20px, 3.2vw, 34px);
}
.cell-interior {
  inset: 3% 1.2%;
  border-radius: clamp(34px, 4.8vw, 54px) / 50%;
}
.flat-cell-outline .terminal-positive {
  left: -12px;
}
.flat-cell-outline .terminal-negative {
  right: -12px;
}
.flat-cell-outline .terminal-positive::after,
.flat-cell-outline .terminal-negative::after {
  width: clamp(25px, 4vw, 42px);
  height: 48%;
}
.cell-interior .label-electrolyte {
  left: 36%;
  top: 84%;
}
.cell-interior .label-electrolyte i {
  height: 17px;
}
.ion-path > span {
  left: 63%;
  top: 17px;
}
@media (max-width: 560px) {
  .continuous-story .flat-cell-outline {
    border-radius: 34px / 50%;
  }
  .continuous-story .flat-cell-outline::before,
  .continuous-story .flat-cell-outline::after {
    width: 24px;
  }
  .continuous-story .flat-cell-outline::before {
    left: 19px;
  }
  .continuous-story .flat-cell-outline::after {
    right: 19px;
  }
  .cell-interior {
    inset: 3% 1.2%;
    border-radius: 31px / 50%;
  }
  .flat-cell-outline .terminal-positive {
    left: -9px;
  }
  .flat-cell-outline .terminal-negative {
    right: -9px;
  }
  .cell-interior .label-electrolyte {
    left: 35%;
    top: 84%;
  }
  .ion-path > span {
    left: 64%;
    top: 15px;
  }
}
.continuous-story .layer-plane {
  inset: auto;
  left: 50%;
  top: 54%;
  width: min(100%, 1080px);
  height: auto;
  aspect-ratio: 1694 / 929;
  overflow: visible;
  opacity: 0;
  transform: translate(-50%, -50%) scale(.68);
  transform-origin: 50% 50%;
  transition: opacity .55s ease .12s, transform 1.35s cubic-bezier(.16, .78, .18, 1) .08s;
}
.continuous-story.stage-unfolded .layer-plane {
  opacity: 1;
  transform: translate(-50%, -50%) scale(1);
}
.operation-cutaway-render {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter: drop-shadow(0 24px 34px rgba(0, 0, 0, .34));
  pointer-events: none;
  user-select: none;
}
.continuous-story .layer-plane > .component-callouts,
.pole-callouts {
  position: absolute;
  inset: 0;
  z-index: 25;
  pointer-events: none;
}
.continuous-story .layer-plane .component-label b,
.pole-label b {
  display: block;
  padding: 6px 11px;
  border: 1px solid rgba(198, 236, 241, .3);
  border-radius: 999px;
  background: rgba(3, 18, 27, .8);
  color: #f1fafb;
  font-size: clamp(.62rem, 1.05vw, .78rem);
  font-weight: 850;
  letter-spacing: -.025em;
  white-space: nowrap;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .08), 0 7px 18px rgba(0, 0, 0, .28);
  backdrop-filter: blur(9px);
}
.continuous-story .layer-plane .component-label i,
.pole-label i {
  position: absolute;
  left: 50%;
  width: 1px;
  background:
    linear-gradient(
      180deg,
      rgba(203, 241, 245, .72),
      rgba(113, 211, 221, .16));
  transform: translateX(-50%);
}
.continuous-story .layer-plane .component-label i::after,
.pole-label i::after {
  position: absolute;
  left: 50%;
  width: 6px;
  height: 6px;
  border: 1px solid rgba(225, 252, 253, .82);
  border-radius: 50%;
  background: #5bced8;
  box-shadow: 0 0 9px rgba(91, 206, 216, .72);
  content: "";
  transform: translateX(-50%);
}
.continuous-story .layer-plane .label-cathode {
  left: 37%;
  top: 41%;
}
.continuous-story .layer-plane .label-cathode i {
  top: 100%;
  height: 28px;
}
.continuous-story .layer-plane .label-cathode i::after {
  bottom: -2px;
}
.continuous-story .layer-plane .label-electrolyte {
  left: 43%;
  top: 73%;
}
.continuous-story .layer-plane .label-electrolyte i {
  bottom: 100%;
  height: 25px;
  background:
    linear-gradient(
      0deg,
      rgba(203, 241, 245, .72),
      rgba(113, 211, 221, .16));
}
.continuous-story .layer-plane .label-electrolyte i::after {
  top: -2px;
}
.continuous-story .layer-plane .label-separator {
  left: 55.5%;
  top: 29%;
}
.continuous-story .layer-plane .label-separator b {
  padding: 5px 9px;
  font-size: clamp(.56rem, .92vw, .7rem);
}
.continuous-story .layer-plane .label-separator i {
  top: 100%;
  height: 34px;
}
.continuous-story .layer-plane .label-separator i::after {
  bottom: -2px;
}
.continuous-story .layer-plane .label-anode {
  left: 71%;
  top: 42%;
}
.continuous-story .layer-plane .label-anode i {
  top: 100%;
  height: 28px;
}
.continuous-story .layer-plane .label-anode i::after {
  bottom: -2px;
}
.pole-label {
  position: absolute;
  transform: translate(-50%, -50%);
}
.pole-positive {
  left: 8.5%;
  top: 79%;
}
.pole-negative {
  left: 91%;
  top: 79%;
}
.pole-label i {
  bottom: 100%;
  height: 54px;
  background:
    linear-gradient(
      0deg,
      rgba(203, 241, 245, .7),
      rgba(113, 211, 221, .14));
}
.pole-label i::after {
  top: -2px;
}
.pole-positive b {
  border-color: rgba(244, 204, 94, .45);
  color: #ffdc76;
}
.pole-negative b {
  color: #d9ebee;
}
.continuous-story .layer-plane > .flow-system {
  inset: 0;
  z-index: 18;
}
.continuous-story .layer-plane .electron-circuit {
  left: 8.5%;
  right: 9%;
  top: 9%;
  height: 40%;
  border: 1px solid rgba(187, 231, 238, .68);
  border-bottom: 0;
  border-radius: 22px 22px 0 0;
  background: none;
  box-shadow: 0 0 8px rgba(112, 211, 221, .15);
}
.continuous-story .layer-plane .electron-circuit::before,
.continuous-story .layer-plane .electron-circuit::after {
  display: none;
}
.continuous-story .layer-plane .electron-circuit i {
  top: -13px;
}
.continuous-story .layer-plane .ion-path {
  left: 22%;
  right: 17%;
  top: 48%;
  z-index: 20;
}
.continuous-story .layer-plane .ion-path > span {
  left: 70%;
  top: 18px;
}
.continuous-story .layer-plane > .charge-input {
  left: 1%;
  top: 48%;
  z-index: 29;
  width: 8%;
  height: 2px;
}
.continuous-story .layer-plane > .charge-input::before {
  left: 0;
  right: auto;
  top: 0;
  width: 100%;
  border-top: 2px solid rgba(255, 211, 92, .74);
  filter: drop-shadow(0 0 8px rgba(255, 200, 76, .74));
}
.continuous-story .layer-plane > .charge-input b {
  left: 4%;
  right: auto;
  bottom: 17px;
  color: #ffe38f;
}
.continuous-story .layer-plane > .charge-input i {
  left: 0;
  right: auto;
  top: -7px;
}
.battery-machine.charge.is-running .layer-plane > .charge-input i {
  animation: external-power-to-positive 1.96s ease-in var(--power-delay) 2 both;
}
@keyframes external-power-to-positive {
  0% {
    left: 0;
    opacity: 0;
    transform: scale(.62);
  }
  16% {
    opacity: 1;
  }
  80% {
    opacity: 1;
  }
  100% {
    left: calc(100% - 14px);
    opacity: 0;
    transform: scale(1.12);
  }
}
.continuous-story .layer-plane > .cycle-meter {
  left: 50%;
  top: 9%;
  z-index: 27;
}
@media (max-width: 820px) {
  .continuous-story .layer-plane {
    width: min(100vw, 760px);
    top: 55%;
  }
  .continuous-story .layer-plane .component-label b,
  .pole-label b {
    padding: 5px 8px;
  }
  .continuous-story .layer-plane .label-cathode i,
  .continuous-story .layer-plane .label-anode i {
    height: 22px;
  }
  .continuous-story .layer-plane .label-electrolyte i {
    height: 20px;
  }
  .continuous-story .layer-plane .label-separator i {
    height: 26px;
  }
  .pole-label i {
    height: 39px;
  }
}
@media (max-width: 560px) {
  .continuous-story.stage-unfolded .battery-machine {
    top: 57%;
  }
  .continuous-story .layer-plane {
    top: 53%;
    width: 103vw;
  }
  .continuous-story .layer-plane .component-label b,
  .pole-label b {
    padding: 4px 7px;
    font-size: .54rem;
  }
  .continuous-story .layer-plane .label-cathode {
    left: 37%;
    top: 40%;
  }
  .continuous-story .layer-plane .label-anode {
    left: 71%;
    top: 41%;
  }
  .continuous-story .layer-plane .label-separator {
    left: 55.5%;
    top: 25%;
  }
  .continuous-story .layer-plane .label-separator b {
    font-size: .48rem;
  }
  .continuous-story .layer-plane .label-electrolyte {
    left: 43%;
    top: 76%;
  }
  .pole-positive {
    left: 8.5%;
    top: 82%;
  }
  .pole-negative {
    left: 91%;
    top: 82%;
  }
  .pole-label i {
    height: 29px;
  }
  .continuous-story .layer-plane .electron-circuit {
    top: 7%;
    height: 45%;
  }
  .continuous-story .layer-plane .electron-circuit i {
    top: -11px;
  }
  .continuous-story .layer-plane > .cycle-meter {
    top: 7%;
  }
  .continuous-story .layer-plane .ion-path {
    top: 52%;
  }
  .continuous-story .layer-plane .ion-path > span {
    left: 72%;
    top: 15px;
  }
  .continuous-story .layer-plane > .charge-input b {
    bottom: 14px;
    font-size: .52rem;
  }
  .cycle-button {
    top: 79%;
  }
  .charge-button {
    left: 20%;
  }
  .discharge-button {
    right: 20%;
  }
}
@media (prefers-reduced-motion: reduce) {
  .continuous-story .layer-plane {
    transition-duration: .01ms !important;
    transition-delay: 0ms !important;
  }
  .battery-machine.charge.is-running .layer-plane > .charge-input i {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
.continuous-story .layer-plane {
  aspect-ratio: 2 / 1;
}
.operation-schematic {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  overflow: visible;
  shape-rendering: geometricPrecision;
}
.continuous-story .layer-plane > .electron-layer {
  z-index: 0;
  opacity: var(--operation-reveal);
  pointer-events: none;
}
.schematic-shell {
  fill: #091720;
  stroke: #8b9ba3;
  stroke-width: 8;
}
.schematic-cap {
  fill: #82929a;
  stroke: #d7e0e3;
  stroke-width: 5;
}
.schematic-cap-left {
  fill: #9aa8ae;
}
.schematic-cap-right {
  fill: #687982;
}
.schematic-terminal {
  stroke: #e8eff1;
  stroke-width: 5;
}
.schematic-terminal-positive {
  fill: #d9ad43;
}
.schematic-terminal-negative {
  fill: #82939c;
}
.schematic-window {
  fill: #0a2734;
  stroke: #b6dde2;
  stroke-width: 4;
}
.schematic-electrolyte {
  fill: #087f98;
  fill-opacity: .36;
  stroke: #42c4d2;
  stroke-width: 2;
}
.schematic-electrolyte-pattern {
  fill: url(#electrolyte-dots);
  opacity: .54;
}
.schematic-electrolyte-pattern + * {
  pointer-events: none;
}
#electrolyte-dots circle {
  fill: #7ce9ec;
  opacity: .55;
}
.schematic-cathode {
  fill: #2e6fbd;
  stroke: #75a9dc;
  stroke-width: 3;
}
.schematic-anode {
  fill: #303a43;
  stroke: #687781;
  stroke-width: 3;
}
.schematic-anode-pattern {
  fill: url(#anode-hatch);
  opacity: .5;
}
#anode-hatch line {
  stroke: #aab7bd;
  stroke-width: 2;
  opacity: .24;
}
.schematic-separator {
  fill: #dcefee;
  stroke: #f5ffff;
  stroke-width: 3;
}
.schematic-separator-pattern {
  fill: url(#separator-pores);
}
#separator-pores circle {
  fill: #45636c;
  opacity: .72;
}
.schematic-collector {
  stroke-width: 2;
}
.schematic-collector-positive {
  fill: #c59430;
  stroke: #ffe294;
}
.schematic-collector-negative {
  fill: #73858e;
  stroke: #d8e2e5;
}
.schematic-glass-line {
  fill: none;
  stroke: rgba(218, 248, 250, .55);
  stroke-width: 3;
  stroke-linecap: round;
}
.schematic-glass-line-bottom {
  opacity: .52;
}
.schematic-badge {
  position: absolute;
  right: 12%;
  top: 7%;
  z-index: 26;
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 6px 10px;
  border: 1px solid rgba(152, 223, 230, .3);
  border-radius: 999px;
  background: rgba(4, 20, 29, .78);
  color: #9ecbd0;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .01em;
  white-space: nowrap;
}
.schematic-badge i {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--cyan);
  box-shadow: 0 0 9px rgba(8, 182, 203, .7);
}
.continuous-story .layer-plane .component-label i {
  display: none;
}
.continuous-story .layer-plane .label-cathode {
  left: 23%;
  top: 41%;
}
.continuous-story .layer-plane .label-electrolyte {
  left: 41%;
  top: 67%;
}
.continuous-story .layer-plane .label-separator {
  left: 49.5%;
  top: 28%;
}
.continuous-story .layer-plane .label-anode {
  left: 77%;
  top: 41%;
}
.pole-positive {
  left: 4.35%;
  top: 50%;
}
.pole-negative {
  left: 95.65%;
  top: 50%;
}
.pole-label b {
  padding: 0;
  border: 0;
  background: transparent;
  color: #101820;
  font-size: clamp(.64rem, 1.05vw, .8rem);
  box-shadow: none;
  backdrop-filter: none;
}
.continuous-story .layer-plane .electron-circuit {
  left: 6.5%;
  right: 6.5%;
  top: 6%;
  height: 44%;
}
.continuous-story .layer-plane .ion-path {
  left: 17%;
  right: 13%;
  top: 50%;
}
.continuous-story .layer-plane > .charge-input {
  left: 0;
  top: 50%;
  width: 7%;
}
.continuous-story .layer-plane > .cycle-meter {
  top: 6%;
}
@media (max-width: 560px) {
  .continuous-story .layer-plane {
    top: 52%;
    width: 104vw;
  }
  .schematic-badge {
    right: 8%;
    top: 4%;
    padding: 4px 7px;
    font-size: .48rem;
  }
  .continuous-story .layer-plane .label-cathode {
    left: 23%;
    top: 40%;
  }
  .continuous-story .layer-plane .label-electrolyte {
    left: 40%;
    top: 68%;
  }
  .continuous-story .layer-plane .label-separator {
    left: 49.5%;
    top: 24%;
  }
  .continuous-story .layer-plane .label-anode {
    left: 77%;
    top: 40%;
  }
  .pole-positive {
    left: 4.35%;
    top: 50%;
  }
  .pole-negative {
    left: 95.65%;
    top: 50%;
  }
  .continuous-story .layer-plane .electron-circuit {
    left: 6.5%;
    right: 6.5%;
    top: 4%;
    height: 46%;
  }
  .continuous-story .layer-plane > .cycle-meter {
    top: 4%;
  }
}
.cycle-meter .energy-fill {
  width: 0;
  padding-inline: 0;
  box-sizing: border-box;
}
.battery-machine.has-charged .energy-fill {
  width: calc(100% - 10px);
}
.battery-machine.discharge.has-discharged .energy-fill {
  width: 0;
}
@keyframes meter-charge {
  from {
    width: 0;
  }
  to {
    width: calc(100% - 10px);
  }
}
@keyframes meter-discharge {
  from {
    width: calc(100% - 10px);
  }
  to {
    width: 0;
  }
}
.continuous-story.stage-unfolded .discharge-button:disabled {
  opacity: .42;
  border-color: rgba(255, 255, 255, .24);
  color: #6f858e;
}
.laptop-demo {
  position: absolute;
  left: 50%;
  top: 0;
  z-index: 30;
  width: clamp(88px, 10vw, 118px);
  height: clamp(58px, 7vw, 76px);
  perspective: 360px;
  pointer-events: none;
  transform: translate(-50%, -108%);
}
.laptop-lid {
  position: absolute;
  left: 8%;
  bottom: 13px;
  width: 84%;
  height: calc(100% - 13px);
  border: 2px solid #8aa2ac;
  border-radius: 7px 7px 3px 3px;
  background:
    linear-gradient(
      145deg,
      #526873,
      #172831 58%,
      #0a151c);
  box-shadow: 0 0 0 2px rgba(2, 11, 17, .82), 0 9px 20px rgba(0, 0, 0, .34);
  transform: rotateX(-83deg);
  transform-origin: 50% 100%;
  transition: transform .64s cubic-bezier(.18, .82, .22, 1);
  transform-style: preserve-3d;
}
.battery-machine.discharge.is-running .laptop-lid,
.battery-machine.discharge.has-discharged .laptop-lid {
  transform: rotateX(0deg);
}
.laptop-screen {
  position: absolute;
  inset: 5px 5px 6px;
  overflow: hidden;
  border: 1px solid rgba(124, 218, 225, .28);
  border-radius: 3px;
  background: #010609;
  box-shadow: inset 0 0 12px rgba(0, 0, 0, .8);
}
.laptop-camera {
  position: absolute;
  left: 50%;
  top: 2px;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: #85b7c0;
  transform: translateX(-50%);
}
.laptop-base {
  position: absolute;
  left: 2%;
  bottom: 7px;
  width: 96%;
  height: 9px;
  border: 1px solid #a8bac1;
  border-radius: 2px 2px 8px 8px;
  background:
    linear-gradient(
      180deg,
      #8ca0a8,
      #30444e 55%,
      #13242c);
  box-shadow: 0 5px 12px rgba(0, 0, 0, .34);
}
.laptop-base::before {
  position: absolute;
  left: 38%;
  top: 1px;
  width: 24%;
  height: 3px;
  border-radius: 0 0 3px 3px;
  background: rgba(7, 21, 27, .45);
  content: "";
}
.laptop-led {
  position: absolute;
  right: 16%;
  top: 3px;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: #2e4650;
}
.charge.is-running .laptop-led {
  background: #65f2e9;
  box-shadow: 0 0 7px #65f2e9;
  animation: laptop-led-pulse .54s ease-in-out infinite alternate;
}
.laptop-port {
  position: absolute;
  right: -2px;
  top: 2px;
  width: 4px;
  height: 4px;
  border-radius: 1px;
  background: #050c10;
}
.laptop-charger {
  position: absolute;
  right: -62px;
  bottom: 5px;
  width: 64px;
  height: 18px;
  opacity: 0;
  transform: translateX(28px);
}
.charger-cable {
  position: absolute;
  right: 0;
  top: 8px;
  width: 54px;
  height: 2px;
  border-radius: 2px;
  background: #758993;
  box-shadow: 0 0 5px rgba(111, 220, 229, .25);
}
.charger-plug {
  position: absolute;
  left: -1px;
  top: 5px;
  width: 14px;
  height: 8px;
  border: 1px solid #b4c5cb;
  border-radius: 2px 4px 4px 2px;
  background:
    linear-gradient(
      180deg,
      #7f969f,
      #324954);
}
.laptop-charger > em {
  position: absolute;
  left: -4px;
  top: -15px;
  padding: 2px 5px;
  border: 1px solid rgba(105, 240, 238, .5);
  border-radius: 999px;
  background: rgba(3, 18, 25, .92);
  color: #8af4f5;
  font-size: .5rem;
  font-style: normal;
  font-weight: 900;
  opacity: 0;
}
.charge.is-running .laptop-charger {
  animation: laptop-plug-cycle 4.16s cubic-bezier(.18, .82, .22, 1) both;
}
.charge.is-running .laptop-charger > em {
  animation: laptop-plug-pop 4.16s ease both;
}
.laptop-boot,
.laptop-low {
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #c9f4f5;
  font-size: clamp(.34rem, .52vw, .48rem);
  font-weight: 850;
  letter-spacing: .02em;
  opacity: 0;
}
.laptop-boot {
  align-content: center;
  gap: 4px;
}
.laptop-boot > i {
  width: 12px;
  height: 12px;
  border: 2px solid rgba(101, 242, 233, .24);
  border-top-color: #65f2e9;
  border-radius: 50%;
}
.discharge.is-running .laptop-boot {
  animation: laptop-boot-phase 1.05s ease .58s both;
}
.discharge.is-running .laptop-boot > i {
  animation: laptop-spin .5s linear .58s 2;
}
.laptop-document {
  position: absolute;
  inset: 5px 7px;
  padding: 4px;
  border-radius: 2px;
  background: #e8f1f1;
  color: #14313b;
  opacity: 0;
  transform: scale(.92);
}
.laptop-document > b {
  display: block;
  margin-bottom: 4px;
  padding-bottom: 2px;
  border-bottom: 1px solid #b8cacc;
  font-size: clamp(.3rem, .45vw, .42rem);
}
.laptop-document > i {
  display: block;
  width: var(--line-width, 84%);
  height: 2px;
  margin: 3px 0;
  border-radius: 2px;
  background: #6d8a91;
  transform-origin: left;
}
.laptop-document > i:nth-of-type(2) {
  --line-width: 70%;
}
.laptop-document > i:nth-of-type(3) {
  --line-width: 90%;
}
.laptop-document > i:nth-of-type(4) {
  --line-width: 54%;
}
.laptop-document > em {
  position: absolute;
  left: 51%;
  bottom: 7px;
  width: 1px;
  height: 6px;
  background: #08a8bd;
}
.discharge.is-running .laptop-document {
  animation: laptop-document-phase 2.18s ease 1.45s both;
}
.discharge.is-running .laptop-document > i {
  animation: laptop-type-line .62s steps(6) infinite alternate;
}
.discharge.is-running .laptop-document > em {
  animation: laptop-caret .38s steps(1) infinite;
}
.laptop-low {
  z-index: 4;
  grid-template-columns: auto 1fr;
  inset: auto 5px 5px;
  min-height: 22px;
  padding: 3px 5px;
  border: 1px solid rgba(255, 117, 99, .72);
  border-radius: 3px;
  background: rgba(40, 8, 8, .96);
  color: #ffb7aa;
  font-size: clamp(.28rem, .45vw, .4rem);
}
.laptop-low > i {
  width: 11px;
  height: 6px;
  border: 1px solid #ff8a76;
  border-radius: 1px;
}
.laptop-low > i::before {
  display: block;
  width: 2px;
  height: 100%;
  background: #ff765f;
  content: "";
}
.discharge.is-running .laptop-low {
  animation: laptop-low-phase .8s ease 3.28s both;
}
.battery-machine.discharge.has-discharged:not(.is-running) .laptop-screen {
  border-color: rgba(255, 255, 255, .07);
  background: #000;
  box-shadow: none;
}
@keyframes laptop-led-pulse {
  to {
    opacity: .45;
  }
}
@keyframes laptop-plug-cycle {
  0%, 7% {
    opacity: 0;
    transform: translateX(28px);
  }
  13% {
    opacity: 1;
  }
  24% {
    opacity: 1;
    transform: translateX(0);
  }
  29% {
    transform: translateX(3px);
  }
  34%, 86% {
    opacity: 1;
    transform: translateX(0);
  }
  100% {
    opacity: 0;
    transform: translateX(18px);
  }
}
@keyframes laptop-plug-pop {
  0%, 21%, 35%, 100% {
    opacity: 0;
    transform: translateY(3px) scale(.75);
  }
  25%, 31% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}
@keyframes laptop-boot-phase {
  0% {
    opacity: 0;
  }
  18%, 78% {
    opacity: 1;
  }
  100% {
    opacity: 0;
  }
}
@keyframes laptop-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes laptop-document-phase {
  0% {
    opacity: 0;
    transform: scale(.92);
  }
  12%, 82% {
    opacity: 1;
    transform: scale(1);
  }
  100% {
    opacity: 0;
    transform: scale(1);
  }
}
@keyframes laptop-type-line {
  from {
    transform: scaleX(.32);
  }
  to {
    transform: scaleX(1);
  }
}
@keyframes laptop-caret {
  50% {
    opacity: 0;
  }
}
@keyframes laptop-low-phase {
  0% {
    opacity: 0;
    transform: translateY(3px);
  }
  18%, 72% {
    opacity: 1;
    transform: translateY(0);
  }
  100% {
    opacity: 0;
  }
}
@media (max-width: 560px) {
  .continuous-story .layer-plane {
    width: 94vw;
  }
  .laptop-demo {
    top: -2%;
    width: 86px;
    height: 58px;
    transform: translate(-50%, -106%);
  }
  .laptop-charger {
    right: -52px;
    width: 54px;
  }
  .charger-cable {
    width: 45px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .laptop-lid {
    transition-duration: .01ms !important;
  }
  .charge.is-running .laptop-charger,
  .charge.is-running .laptop-charger > em,
  .charge.is-running .laptop-led,
  .discharge.is-running .laptop-boot,
  .discharge.is-running .laptop-boot > i,
  .discharge.is-running .laptop-document,
  .discharge.is-running .laptop-document > i,
  .discharge.is-running .laptop-document > em,
  .discharge.is-running .laptop-low {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
  }
}
.laptop-demo *,
.laptop-demo *::before,
.laptop-demo *::after {
  box-sizing: border-box;
}
.laptop-lid {
  transform: rotateX(-76deg);
}
.laptop-lid::after {
  position: absolute;
  inset: -2px;
  z-index: 8;
  border: 1px solid #a7b8bf;
  border-radius: 7px 7px 3px 3px;
  background:
    linear-gradient(
      145deg,
      rgba(255, 255, 255, .2),
      transparent 28%),
    linear-gradient(
      160deg,
      #657c86,
      #243943 56%,
      #10212a);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
  opacity: 1;
  content: "";
  transition: opacity .16s ease;
}
.laptop-lid::before {
  position: absolute;
  left: 50%;
  top: 50%;
  z-index: 9;
  width: 9px;
  height: 9px;
  border: 1px solid rgba(165, 229, 233, .5);
  border-radius: 50%;
  background: rgba(6, 25, 33, .35);
  box-shadow: 0 0 7px rgba(84, 219, 226, .16);
  opacity: 1;
  content: "";
  transform: translate(-50%, -50%);
  transition: opacity .12s ease;
}
.battery-machine.discharge.is-running .laptop-lid::before,
.battery-machine.discharge.is-running .laptop-lid::after,
.battery-machine.discharge.has-discharged .laptop-lid::before,
.battery-machine.discharge.has-discharged .laptop-lid::after {
  opacity: 0;
}
.electron-route-label {
  position: absolute;
  left: 0;
  top: -25px;
  z-index: 5;
  padding: 3px 7px;
  border: 1px solid rgba(131, 224, 231, .38);
  border-radius: 999px;
  background: rgba(4, 20, 28, .9);
  color: #b7e9ec;
  font-size: .55rem;
  font-weight: 850;
  line-height: 1;
  white-space: nowrap;
}
.electrolyte-note {
  position: absolute;
  left: 20%;
  top: 72%;
  z-index: 32;
  width: min(210px, 34vw);
  margin: 0;
  color: rgba(181, 211, 216, .72);
  font-size: clamp(.5rem, .75vw, .62rem);
  font-weight: 650;
  line-height: 1.45;
  text-align: center;
  opacity: 0;
  transform: translate(-50%, 6px);
  transition: opacity .45s ease .72s, transform .45s ease .72s;
  pointer-events: none;
}
.continuous-story.stage-unfolded .electrolyte-note {
  opacity: 1;
  transform: translate(-50%, 0);
}
@media (max-width: 560px) {
  .laptop-screen {
    inset: 3px 4px 4px;
  }
  .laptop-camera {
    top: 1px;
  }
  .laptop-boot {
    gap: 2px;
    font-size: .32rem;
  }
  .laptop-boot > i {
    width: 9px;
    height: 9px;
  }
  .laptop-document {
    inset: 3px 4px;
    padding: 3px;
  }
  .laptop-document > b {
    margin-bottom: 2px;
    padding-bottom: 1px;
    font-size: .31rem;
  }
  .laptop-document > i {
    height: 1px;
    margin: 2px 0;
  }
  .laptop-document > em {
    bottom: 4px;
    height: 5px;
  }
  .laptop-low {
    inset: auto 3px 3px;
    min-height: 16px;
    padding: 2px 3px;
    font-size: .31rem;
    white-space: nowrap;
  }
  .laptop-low > i {
    width: 9px;
    height: 5px;
  }
  .continuous-story .layer-plane .ion-path > span {
    top: 7px;
  }
  .electron-route-label {
    top: -20px;
    padding: 2px 5px;
    font-size: .46rem;
  }
  .electrolyte-note {
    top: 71%;
    width: 42vw;
    font-size: .46rem;
  }
}
.laptop-lid {
  transform: rotateX(0deg);
}
.laptop-lid::before,
.laptop-lid::after {
  opacity: 0;
}
.battery-machine.discharge.is-running .laptop-lid,
.battery-machine.discharge.has-discharged .laptop-lid {
  transform: rotateX(0deg);
}
.battery-machine.charge.is-plugging .laptop-charger {
  animation: laptop-plug-in-fast .45s cubic-bezier(.18, .82, .22, 1) both;
}
.battery-machine.charge.is-plugging .laptop-charger > em {
  animation: laptop-plug-pop-fast .45s ease both;
}
.battery-machine.charge.is-running .laptop-charger {
  opacity: 1;
  transform: translateX(0);
  animation: none;
}
.battery-machine.charge.is-running .laptop-charger > em {
  opacity: 0;
  animation: none;
}
.battery-machine.charge.is-running .electron-circuit i {
  animation: circuit-right 1.4s linear var(--charge-particle-delay) 1 both;
}
.battery-machine.charge.is-running .ion-path i {
  animation: ion-right-flat 1.24s linear var(--charge-particle-delay) 1 both;
}
.battery-machine.charge.is-running .energy-fill {
  animation: meter-charge 2.08s linear both;
}
.battery-machine.charge.is-running .energy-meter > b {
  animation-duration: .375s;
}
.battery-machine.charge.is-running .laptop-led {
  animation-duration: .27s;
}
.battery-machine.charge.is-running .layer-plane > .charge-input i {
  animation: external-power-to-positive .98s ease-in var(--power-delay) 1 both;
}
.battery-machine.is-plugging .flow-stop {
  opacity: 0;
}
@keyframes laptop-plug-in-fast {
  0%, 10% {
    opacity: 0;
    transform: translateX(28px);
  }
  22% {
    opacity: 1;
  }
  80% {
    opacity: 1;
    transform: translateX(0);
  }
  89% {
    opacity: 1;
    transform: translateX(3px);
  }
  100% {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes laptop-plug-pop-fast {
  0%, 78% {
    opacity: 0;
    transform: translateY(3px) scale(.75);
  }
  86%, 95% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
  100% {
    opacity: 0;
    transform: translateY(0) scale(.9);
  }
}
.electrolyte-note {
  left: 20%;
  top: 75%;
  width: min(250px, 38vw);
}
@media (max-width: 560px) {
  .electrolyte-note {
    top: 66%;
    width: 48vw;
  }
}
@media (prefers-reduced-motion: reduce) {
  .battery-machine.charge.is-plugging .laptop-charger,
  .battery-machine.charge.is-plugging .laptop-charger > em {
    animation-duration: .01ms !important;
  }
}
.laptop-screen {
  display: grid;
  overflow: hidden;
  place-items: center;
  isolation: isolate;
  contain: paint;
}
.battery-machine.charge .laptop-screen {
  background: #010609;
}
.battery-machine.charge .laptop-boot,
.battery-machine.charge .laptop-document,
.battery-machine.charge .laptop-low {
  opacity: 0 !important;
  animation: none !important;
}
.laptop-boot {
  inset: 0;
  width: 100%;
  height: 100%;
}
.laptop-document {
  inset: auto;
  left: 50%;
  top: 50%;
  width: calc(100% - 12px);
  height: calc(100% - 10px);
  max-width: calc(100% - 12px);
  max-height: calc(100% - 10px);
  overflow: hidden;
  transform: translate(-50%, -50%) scale(.92);
  transform-origin: 50% 50%;
}
.laptop-low {
  inset: auto;
  left: 50%;
  bottom: 5px;
  width: calc(100% - 10px);
  max-width: calc(100% - 10px);
  overflow: hidden;
  transform: translateX(-50%);
}
@keyframes laptop-document-phase {
  0% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(.92);
  }
  12%, 82% {
    opacity: 1;
    transform: translate(-50%, -50%) scale(1);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, -50%) scale(1);
  }
}
@keyframes laptop-low-phase {
  0% {
    opacity: 0;
    transform: translate(-50%, 3px);
  }
  18%, 72% {
    opacity: 1;
    transform: translate(-50%, 0);
  }
  100% {
    opacity: 0;
    transform: translate(-50%, 0);
  }
}
@media (max-width: 560px) {
  .laptop-document {
    width: calc(100% - 8px);
    height: calc(100% - 7px);
    max-width: calc(100% - 8px);
    max-height: calc(100% - 7px);
  }
  .laptop-low {
    bottom: 3px;
    width: calc(100% - 6px);
    max-width: calc(100% - 6px);
  }
}
.summary-section {
  padding: clamp(84px, 11vw, 150px) clamp(20px, 5vw, 72px);
  background: #eef3f4;
}
.summary-section .takeaway {
  margin: 0 auto;
}
.summary-section .summary-headline > span {
  display: block;
  margin: 0 0 clamp(12px, 1.6vw, 20px);
  color: #b8c5c9;
  font-size: clamp(1.15rem, 2.2vw, 1.9rem);
  font-weight: 900;
  letter-spacing: -.04em;
  line-height: 1.4;
}
.summary-section .summary-headline h2 {
  margin: 0;
}
.summary-section .closing-principle em {
  display: block;
  margin-bottom: 8px;
  color: white;
  font-size: .76rem;
  font-style: normal;
  font-weight: 900;
}
.meaning {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  background: #fff;
}
.meaning-background {
  position: absolute;
  inset: 0 0 auto;
  z-index: -2;
  height: clamp(610px, 56.25vw, 1080px);
  background: #f3f6f8;
  opacity: 0;
  transform: scale(1.16);
  transform-origin: 50% 24%;
  transition: transform 2.4s cubic-bezier(.16, .82, .24, 1), opacity .9s ease;
  will-change: transform, opacity;
}
.meaning-background::after {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      180deg,
      rgba(255, 255, 255, .04) 0%,
      transparent 54%,
      rgba(246, 249, 250, .34) 76%,
      #fff 100%);
  content: "";
}
.meaning.is-visible .meaning-background {
  opacity: 1;
  transform: scale(1);
}
.meaning > :not(.meaning-background) {
  position: relative;
  z-index: 1;
}
.meaning .section-intro h2,
.meaning .section-intro .meaning-subtitle {
  color: var(--ink);
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-size: clamp(2.7rem, 6.5vw, 6rem);
  font-weight: 950;
  letter-spacing: -.075em;
  line-height: 1.08;
  text-shadow: 0 1px 18px rgba(255, 255, 255, .96);
}
.meaning .section-intro .meaning-subtitle {
  max-width: none;
  margin: -.06em 0 0;
}
.meaning .section-intro {
  margin-bottom: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.meaning .pros-cons {
  gap: clamp(8px, 1vw, 14px);
  margin-top: clamp(220px, 22vw, 380px);
}
.meaning .pros-cons article {
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, .72);
  border-radius: 4px;
  box-shadow: 0 22px 54px rgba(21, 63, 75, .12);
  backdrop-filter: none;
}
.meaning .pros {
  background: #c8f0f2;
  color: #09212a;
}
.meaning .cons {
  background: #0a2b38;
}
.meaning .pros-cons li {
  line-height: 1.65;
}
.meaning .pros-cons article > h2 {
  margin: 0;
  font-size: .82rem;
}
.meaning .takeaway {
  border: 1px solid rgba(8, 182, 203, .18);
  background:
    radial-gradient(
      circle at 86% 14%,
      rgba(8, 182, 203, .16),
      transparent 34%),
    var(--navy);
  box-shadow: 0 30px 90px rgba(7, 24, 35, .13);
}
@media (min-width: 821px) {
  .meaning {
    padding-top: clamp(82px, 7vw, 112px);
  }
  .meaning .section-intro {
    width: min(520px, 43vw);
    max-width: none;
    margin-right: auto;
    margin-left: 0;
  }
  .meaning .section-intro h2 {
    margin-top: 12px;
    font-size: clamp(2.15rem, 3.25vw, 3.55rem);
    line-height: 1.08;
  }
  .meaning .section-intro .meaning-subtitle {
    font-size: clamp(2.15rem, 3.25vw, 3.55rem);
  }
}
@media (max-width: 560px) {
  .summary-section {
    padding: 64px 16px;
  }
  .summary-section .summary-headline > span {
    font-size: 1.05rem;
  }
  .summary-section .takeaway h2 {
    font-size: clamp(1.72rem, 8vw, 2.35rem);
  }
  .summary-section .closing-principle em {
    font-size: .7rem;
  }
  .meaning-background {
    height: 800px;
    background-position: 50% 190px;
    background-size: auto 610px;
  }
  .meaning .section-intro {
    margin-bottom: 0;
    padding: 0;
  }
  .meaning .section-intro .meaning-subtitle {
    margin-top: -.06em;
    margin-left: 0;
    font-size: clamp(2.5rem, 13vw, 4rem);
  }
  .meaning .pros-cons {
    gap: 10px;
    margin-top: 330px;
  }
  .meaning .pros-cons article {
    min-height: auto;
    border-radius: 3px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .meaning-background {
    opacity: 1;
    transform: none;
  }
}
.closing-principle {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 42px;
}
.takeaway .closing-principle article {
  display: flex;
  min-height: 112px;
  align-items: center;
  gap: 16px;
  margin: 0;
  padding: 24px;
  border: 1px solid rgba(255, 255, 255, .16);
  color: #b8c5c9;
  font-size: clamp(.78rem, 1.2vw, .95rem);
  line-height: 1.65;
}
.takeaway .closing-principle p {
  margin: 0;
  color: #b8c5c9;
  line-height: 1.85;
}
.takeaway .closing-principle article > div {
  min-width: 0;
}
.closing-principle b {
  display: grid;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  place-items: center;
  border-radius: 999px;
  background: var(--cyan);
  color: #071018;
  font-size: .68rem;
}
@media (max-width: 560px) {
  .closing-principle {
    grid-template-columns: 1fr;
    margin-top: 32px;
  }
  .takeaway .closing-principle article {
    min-height: 92px;
    padding: 18px;
  }
}
.continuous-story .story-title {
  width: min(56vw, 820px);
}
.story-brand-stacked {
  display: inline-grid;
  justify-items: start;
  margin: 0;
  color: white;
  font-family:
    "Black Han Sans Local",
    "Black Han Sans",
    "Noto Sans KR",
    "Malgun Gothic",
    sans-serif;
  font-size: clamp(4rem, 10.6vw, 8.7rem);
  font-weight: 400;
  letter-spacing: -.075em;
  line-height: .85;
}
.ending-brand {
  position: relative;
  display: grid;
  min-height: min(84svh, 900px);
  place-items: center;
  overflow: hidden;
  padding: clamp(92px, 11vw, 158px) clamp(22px, 6vw, 90px);
  background: #d4dfe1;
  color: #101214;
}
.ending-brand-inner {
  width: min(100%, 1120px);
  margin-bottom: clamp(34px, 6vw, 76px);
}
.ending-brand-kicker {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: clamp(28px, 4vw, 52px);
  color: #00a8bd;
  font-size: clamp(.62rem, .9vw, .78rem);
  font-weight: 900;
  letter-spacing: .15em;
  white-space: nowrap;
}
.ending-brand-kicker i {
  width: clamp(80px, 13vw, 180px);
  height: 2px;
  background: currentColor;
}
.ending-brand-lockup {
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: clamp(12px, 2vw, 30px);
  font-size: clamp(4rem, 9.7vw, 8.2rem);
}
.ending-brand-logo {
  display: inline-grid;
  flex: 0 1 auto;
  justify-items: start;
  font-family:
    "Black Han Sans Local",
    "Black Han Sans",
    "Noto Sans KR",
    "Malgun Gothic",
    sans-serif;
  font-size: 1em;
  font-weight: 400;
  letter-spacing: -.075em;
  line-height: .85;
}
.ending-brand-logo > span,
.ending-brand-bottom {
  white-space: nowrap;
}
.ending-brand-bottom {
  display: flex;
  align-items: baseline;
  margin-top: .2em;
}
.ending-brand-point {
  display: inline-block;
  color: #00b4c9;
  transform: rotate(-4deg) skewX(-3deg);
  transform-origin: 50% 80%;
}
.ending-brand-point-wrap {
  position: relative;
  display: inline-block;
  margin-left: .13em;
}
.ending-brand-point-wrap small {
  position: absolute;
  top: calc(100% + 1.25rem);
  right: 0;
  color: #67777c;
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  font-size: clamp(.58rem, .72vw, .72rem);
  font-weight: 800;
  letter-spacing: .02em;
  line-height: 1;
  white-space: nowrap;
}
.ending-brand-character {
  display: block;
  flex: 0 0 auto;
  width: auto;
  height: 2.9em;
  object-fit: contain;
  transform: translateY(.61em);
}
.ending-brand-tagline {
  position: absolute;
  right: clamp(22px, 6vw, 90px);
  bottom: clamp(28px, 5vw, 62px);
  padding-left: 18px;
  border-left: 3px solid #00a8bd;
  text-align: left;
}
.ending-brand-tagline strong {
  display: block;
  margin-bottom: 9px;
  color: #101214;
  font-size: clamp(1rem, 1.6vw, 1.38rem);
  font-weight: 950;
  letter-spacing: -.04em;
}
.ending-brand-tagline p {
  margin: 0;
  color: #526267;
  font-size: clamp(.76rem, 1vw, .9rem);
  font-weight: 750;
  line-height: 1.65;
}
@media (max-width: 700px) {
  .ending-brand {
    min-height: 76svh;
    padding: 78px 16px 150px;
  }
  .ending-brand-inner {
    margin-bottom: 0;
  }
  .ending-brand-kicker {
    gap: 10px;
    margin-bottom: 34px;
    font-size: .55rem;
  }
  .ending-brand-kicker i {
    width: 54px;
  }
  .ending-brand-lockup {
    gap: 8px;
    font-size: clamp(2.75rem, 14vw, 5rem);
  }
  .ending-brand-character {
    height: 2.75em;
    transform: translateY(.58em);
  }
  .ending-brand-point-wrap small {
    top: calc(100% + .85rem);
    font-size: .5rem;
  }
  .ending-brand-tagline {
    right: 18px;
    bottom: 28px;
  }
}
.story-brand-top,
.story-brand-bottom {
  white-space: nowrap;
}
.story-brand-top-row {
  display: flex;
  align-items: baseline;
  gap: .16em;
  white-space: nowrap;
}
.story-brand-character {
  display: block;
  width: auto;
  height: 1.08em;
  flex: 0 0 auto;
  object-fit: contain;
  transform: none;
}
.story-brand-bottom {
  display: flex;
  align-items: baseline;
  margin-top: .2em;
}
.story-brand-point {
  display: inline-block;
  margin-left: .13em;
  color: var(--cyan);
  transform: rotate(-4deg) skewX(-3deg);
  transform-origin: 50% 80%;
}
.continuous-story .story-title > .story-edition {
  margin-top: clamp(22px, 2.6vw, 38px);
  margin-bottom: 0;
  color: #dce5e9;
  font-size: clamp(1rem, 1.35vw, 1.3rem);
  font-weight: 800;
  letter-spacing: .025em;
  line-height: 1.4;
  white-space: nowrap;
}
.continuous-story .story-title > .story-edition span {
  margin-right: .38em;
  color: var(--cyan);
  font-weight: 900;
}
.continuous-story .story-title > span {
  margin-top: 26px;
}
@media (max-width: 820px) {
  .continuous-story .story-title {
    width: auto;
  }
  .continuous-story .story-title > .story-edition {
    font-size: clamp(.92rem, 3.8vw, 1.15rem);
  }
  .story-brand-stacked {
    font-size: clamp(3.55rem, 18vw, 6.2rem);
  }
}
@media (max-width: 560px) {
  .continuous-story .story-title > .story-edition {
    margin-top: 19px;
  }
  .continuous-story .story-title > span {
    margin-top: 17px;
  }
}
.battery-machine.charge.is-running .electron-circuit i {
  animation: circuit-right 4.2s linear var(--particle-delay) 1 both;
}
.battery-machine.discharge.is-running .electron-circuit i {
  animation: circuit-left 4.2s linear var(--particle-delay) 1 both;
}
.battery-machine.charge.is-running .ion-path i {
  animation: ion-right-flat 3.72s linear var(--particle-delay) 1 both;
}
.battery-machine.discharge.is-running .ion-path i {
  animation: ion-left-flat 3.72s linear var(--particle-delay) 1 both;
}
.battery-machine.charge.is-running .energy-fill,
.battery-machine.discharge.is-running .energy-fill {
  animation-duration: 6.24s;
}
.battery-machine.charge.is-running .layer-plane > .charge-input i {
  animation: external-power-to-positive 2.94s ease-in var(--power-delay) 1 both;
}
.battery-machine.charge.is-running .energy-meter > b {
  animation-duration: .75s;
}
.battery-machine.charge.is-running .laptop-led {
  animation-duration: .54s;
}
.battery-machine.discharge.is-running .laptop-boot {
  animation: laptop-boot-phase 1.575s ease .87s both;
}
.battery-machine.discharge.is-running .laptop-boot > i {
  animation: laptop-spin .75s linear .87s 2;
}
.battery-machine.discharge.is-running .laptop-document {
  animation: laptop-document-phase 3.27s ease 2.175s both;
}
.battery-machine.discharge.is-running .laptop-document > i {
  animation-duration: .93s;
}
.battery-machine.discharge.is-running .laptop-document > em {
  animation-duration: .57s;
}
.battery-machine.discharge.is-running .laptop-low {
  animation: laptop-low-phase 1.2s ease 4.92s both;
}
.continuous-story .layer-plane .electron-circuit {
  left: 4.35%;
  right: 4.35%;
  top: 6%;
  height: 44%;
}
@keyframes electron-route-charge {
  0% {
    left: -13px;
    top: calc(100% - 13px);
  }
  22% {
    left: -13px;
    top: -13px;
  }
  78% {
    left: calc(100% - 13px);
    top: -13px;
  }
  100% {
    left: calc(100% - 13px);
    top: calc(100% - 13px);
  }
}
@keyframes electron-route-discharge {
  0% {
    left: calc(100% - 13px);
    top: calc(100% - 13px);
  }
  22% {
    left: calc(100% - 13px);
    top: -13px;
  }
  78% {
    left: -13px;
    top: -13px;
  }
  100% {
    left: -13px;
    top: calc(100% - 13px);
  }
}
:root {
  color-scheme: only light;
}
.summary-section {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #eef3f4;
}
.summary-section::before {
  position: absolute;
  inset: 0;
  z-index: -2;
  background: #edf2f4;
  content: "";
  opacity: .7;
  -webkit-mask-image:
    linear-gradient(
      to bottom,
      #000 0%,
      #000 38%,
      rgba(0, 0, 0, .72) 62%,
      transparent 100%);
  mask-image:
    linear-gradient(
      to bottom,
      #000 0%,
      #000 38%,
      rgba(0, 0, 0, .72) 62%,
      transparent 100%);
  transform: scale(1.06);
  transform-origin: 50% 18%;
  transition: opacity 1.15s ease, transform 2.2s cubic-bezier(.16, .82, .24, 1);
}
.summary-section::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  background:
    linear-gradient(
      180deg,
      rgba(238, 243, 244, .08),
      rgba(238, 243, 244, .18) 45%,
      #eef3f4 100%);
  content: "";
  pointer-events: none;
}
.summary-section.is-visible::before {
  opacity: .82;
  transform: scale(1);
}
.summary-section .takeaway {
  position: relative;
  background: rgba(8, 16, 24, .94);
  box-shadow: 0 28px 90px rgba(9, 35, 45, .22);
  backdrop-filter: blur(7px);
}
.summary-headline h2 i {
  display: inline-block;
  font-style: normal;
  opacity: 0;
  transform: translateY(.42em);
  transition: opacity .34s ease, transform .46s cubic-bezier(.18, .82, .22, 1);
}
.summary-section.is-visible .summary-headline h2 i {
  opacity: 1;
  transform: translateY(0);
}
.summary-section .closing-principle article {
  opacity: 0;
  transform: translateY(22px) scale(.985);
  transition: opacity .58s ease, transform .72s cubic-bezier(.18, .82, .22, 1);
}
.summary-section.is-visible .closing-principle article:first-child {
  opacity: 1;
  transform: none;
  transition-delay: 1.42s;
}
.summary-section.is-visible .closing-principle article:nth-child(2) {
  opacity: 1;
  transform: none;
  transition-delay: 1.72s;
}
.continuous-story .cycle-button,
.continuous-story .discharge-button {
  opacity: 0;
  transition:
    opacity .65s ease 1.05s,
    transform .75s ease 1.05s,
    border-color .25s ease,
    color .25s ease;
}
.continuous-story.stage-unfolded .cycle-button,
.continuous-story.stage-unfolded .discharge-button {
  opacity: 1;
}
.continuous-story.stage-unfolded .discharge-button:disabled {
  opacity: .42;
}
.ending-brand {
  color-scheme: light;
  forced-color-adjust: none;
  background-color: #d4dfe1 !important;
}
.ending-brand-lockup {
  gap: 0;
}
.ending-brand-character {
  margin-right: -.62em;
}
.ending-brand-credit-row {
  position: absolute;
  top: calc(100% + 1.15rem);
  right: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  font-family:
    "Noto Sans KR",
    "Apple SD Gothic Neo",
    "Malgun Gothic",
    sans-serif;
  line-height: 1;
  white-space: nowrap;
}
.ending-brand-credit-row::before {
  width: clamp(30px, 4vw, 54px);
  height: 1px;
  background: #00a8bd;
  content: "";
}
.ending-brand-credit-row b {
  color: #00a8bd;
  font-size: clamp(.48rem, .58vw, .62rem);
  font-weight: 900;
  letter-spacing: .11em;
}
.ending-brand-credit-row small {
  color: #67777c;
  font-size: clamp(.58rem, .72vw, .72rem);
  font-weight: 800;
  letter-spacing: .02em;
}
.ending-brand-point-wrap > small {
  display: none;
}
.ending-brand-tagline {
  inset: clamp(84px, 9vw, 124px) auto auto clamp(22px, 6vw, 90px);
}
@media (prefers-color-scheme: dark) {
  .story-brand-character {
    filter: brightness(1.42) contrast(.94) drop-shadow(0 0 8px rgba(255, 255, 255, .08));
  }
  .ending-brand-character {
    filter: brightness(1.3) contrast(.94);
  }
  .ending-brand,
  .ending-brand-logo,
  .ending-brand-tagline strong {
    color: #101214 !important;
  }
  .ending-brand-tagline p {
    color: #526267 !important;
  }
}
@media (max-width: 700px) {
  .continuous-story.stage-intro .story-title {
    top: 31%;
  }
  .continuous-story.stage-unfolded .battery-machine {
    top: 68%;
    width: 94vw;
    height: min(54svh, 470px);
  }
  .continuous-story.stage-unfolded .layer-plane {
    top: 52%;
    width: 94vw;
  }
  .operation-guide {
    top: 70px;
  }
  .operation-guide h2 {
    margin: 8px 0 6px;
  }
  .operation-guide p {
    line-height: 1.45;
  }
  .operation-log-panel {
    left: 14px;
    right: 14px;
    top: 184px;
    width: auto;
    max-width: none;
  }
  .operation-log-heading {
    display: grid;
    grid-template-columns: 76px minmax(0, 1fr);
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
  }
  .operation-log-heading > div {
    display: block;
  }
  .operation-log-heading > div b {
    display: block;
    margin-top: 3px;
  }
  .operation-progress {
    margin: 0;
  }
  .operation-progress li i {
    width: 17px;
    height: 17px;
    margin-bottom: 2px;
  }
  .operation-log {
    height: 56px;
  }
  .operation-log-empty {
    padding: 12px 11px;
  }
  .operation-log > ol {
    padding: 1px 11px 7px;
  }
  .operation-log li {
    padding: 5px 0;
  }
  .operation-log li p {
    margin-top: 2px;
    font-size: .6rem;
    line-height: 1.35;
  }
  .cycle-button {
    top: 75%;
  }
  .charge-button {
    left: 18%;
  }
  .discharge-button {
    right: 18%;
  }
  .continuous-story .story-note {
    bottom: 9px;
    max-width: calc(100vw - 28px);
  }
  .summary-section {
    padding-top: 82px;
    background: #eef3f4;
  }
  .summary-section::before {
    background-position: 50% 0;
    background-size: auto 58%;
  }
  .ending-brand {
    min-height: 78svh;
    padding: 124px 12px 118px;
  }
  .ending-brand-lockup {
    gap: 0;
  }
  .ending-brand-character {
    margin-right: -.58em;
  }
  .ending-brand-credit-row {
    top: calc(100% + .85rem);
    gap: 6px;
  }
  .ending-brand-credit-row::before {
    width: 18px;
  }
  .ending-brand-credit-row b {
    font-size: .36rem;
    letter-spacing: .07em;
  }
  .ending-brand-credit-row small {
    font-size: .47rem;
  }
  .ending-brand-tagline {
    inset: 76px auto auto 18px;
    padding-left: 12px;
  }
}
.summary-section {
  position: relative;
  min-height: clamp(720px, 74vw, 980px);
  padding: clamp(132px, 15vw, 190px) clamp(20px, 5vw, 72px) clamp(118px, 13vw, 172px);
  background: #d8bb78;
}
.summary-section::before {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  background: url(../images/summary-map-texture-v3.png) center / cover no-repeat;
  content: "";
  opacity: .9;
  -webkit-mask-image: none;
  mask-image: none;
  transform: none;
}
.summary-section::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  background:
    linear-gradient(
      180deg,
      #081018 0%,
      rgba(8, 16, 24, .76) 3%,
      transparent 15%,
      transparent 82%,
      rgba(211, 223, 224, .5) 95%,
      #d3dfe0 100%),
    radial-gradient(
      ellipse at 50% 48%,
      rgba(255, 246, 215, .35) 0 28%,
      transparent 67%);
  content: "";
  pointer-events: none;
}
.summary-section .takeaway {
  display: block;
  min-height: 0;
  max-width: 1080px;
  padding: 0;
  border: 0;
  background: transparent;
  color: #302218;
}
.summary-section .takeaway::before {
  position: absolute;
  inset: -42px -52px;
  z-index: -1;
  display: block;
  border: 0;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255, 245, 213, .5) 0%,
      rgba(255, 245, 213, .25) 46%,
      transparent 76%);
  box-shadow: none;
  content: "";
  pointer-events: none;
}
.summary-section .takeaway::after {
  position: absolute;
  inset: -24px -30px;
  z-index: -1;
  display: block;
  border: 0;
  background:
    radial-gradient(
      ellipse at 8% 84%,
      transparent 0 9%,
      rgba(82, 55, 31, .08) 9.4% 9.8%,
      transparent 10.2% 14%,
      rgba(82, 55, 31, .06) 14.4% 14.8%,
      transparent 15.2%),
    radial-gradient(
      ellipse at 93% 10%,
      transparent 0 8%,
      rgba(82, 55, 31, .075) 8.4% 8.8%,
      transparent 9.2% 13%,
      rgba(82, 55, 31, .055) 13.4% 13.8%,
      transparent 14.2%);
  content: "";
  pointer-events: none;
}
.summary-section .takeaway > p {
  display: inline-flex;
  margin: 0 0 30px;
  padding: 7px 0 6px;
  border-top: 1px solid rgba(78, 49, 27, .42);
  border-bottom: 1px solid rgba(78, 49, 27, .26);
  color: #69382b;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  font-size: .72rem;
  letter-spacing: .18em;
}
.summary-section .summary-headline {
  position: relative;
  padding-bottom: 34px;
}
.summary-section .summary-headline::after {
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(520px, 72%);
  border-bottom: 2px solid rgba(78, 49, 27, .45);
  content: "";
}
.summary-section .summary-headline > span {
  margin-bottom: 10px;
  color: #725c46;
  font-size: clamp(1rem, 1.9vw, 1.55rem);
  letter-spacing: -.025em;
}
.summary-section .takeaway h2 {
  max-width: 880px;
  color: #2b1e15;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  font-size: clamp(2.25rem, 5vw, 4.9rem);
  font-weight: 900;
  letter-spacing: -.065em;
  line-height: 1.16;
  text-shadow: 0 1px rgba(255, 248, 226, .72);
}
.summary-section .closing-principle {
  position: relative;
  gap: clamp(26px, 5vw, 70px);
  margin-top: 54px;
}
.summary-section .closing-principle::before {
  position: absolute;
  left: 50%;
  top: 4%;
  bottom: 4%;
  width: 1px;
  background:
    linear-gradient(
      transparent,
      rgba(78, 49, 27, .32) 18%,
      rgba(78, 49, 27, .32) 82%,
      transparent);
  content: "";
}
.summary-section .closing-principle article {
  align-items: flex-start;
  min-height: 0;
  padding: 20px 0 18px;
  border: 0;
  border-top: 1px solid rgba(78, 49, 27, .34);
  border-bottom: 1px solid rgba(78, 49, 27, .17);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.summary-section .closing-principle b {
  flex-basis: 42px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(84, 47, 33, .42);
  background: rgba(111, 56, 42, .88);
  color: #f7e8c8;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  box-shadow: none;
}
.summary-section .closing-principle article:nth-child(2) > b {
  background: rgba(71, 66, 45, .9);
}
.summary-section .closing-principle em {
  color: #60372d;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  font-size: .8rem;
  letter-spacing: .02em;
}
.summary-section .takeaway .closing-principle p {
  color: #38291e;
  font-size: clamp(.78rem, 1.15vw, .94rem);
  line-height: 1.8;
}
@media (max-width: 700px) {
  .summary-section {
    min-height: 0;
    padding: 116px 24px 118px;
    background: #d8bb78;
  }
  .summary-section::before {
    background-position: 44% center;
    background-size: auto 100%;
  }
  .summary-section::after {
    background:
      linear-gradient(
        180deg,
        #081018 0%,
        rgba(8, 16, 24, .7) 2.5%,
        transparent 11%,
        transparent 88%,
        rgba(211, 223, 224, .5) 96%,
        #d3dfe0 100%),
      radial-gradient(
        ellipse at 50% 48%,
        rgba(255, 246, 215, .38),
        transparent 75%);
  }
  .summary-section .takeaway {
    width: min(100%, 430px);
    aspect-ratio: auto;
    padding: 0;
    background: transparent;
  }
  .summary-section .takeaway::before {
    inset: -24px -18px;
  }
  .summary-section .takeaway::after {
    inset: -18px -10px;
  }
  .summary-section .takeaway > p {
    margin-bottom: 22px;
    font-size: .62rem;
  }
  .summary-section .summary-headline {
    padding-bottom: 25px;
  }
  .summary-section .summary-headline::after {
    width: 84%;
  }
  .summary-section .summary-headline > span {
    font-size: .94rem;
  }
  .summary-section .takeaway h2 {
    font-size: clamp(1.72rem, 8vw, 2.25rem);
    line-height: 1.2;
  }
  .summary-section .closing-principle {
    gap: 18px;
    margin-top: 34px;
  }
  .summary-section .closing-principle::before {
    display: none;
  }
  .summary-section .takeaway .closing-principle article {
    gap: 12px;
    padding: 15px 0 14px;
  }
  .summary-section .closing-principle b {
    flex-basis: 38px;
    width: 38px;
    height: 38px;
  }
  .summary-section .closing-principle em {
    margin-bottom: 5px;
    font-size: .68rem;
  }
  .summary-section .takeaway .closing-principle p {
    font-size: .72rem;
    line-height: 1.62;
  }
}
@media (max-width: 420px) and (max-height: 700px) {
  .operation-guide h2 {
    font-size: 1.35rem;
  }
  .operation-guide p {
    font-size: .7rem;
  }
  .operation-log-panel {
    top: 170px;
  }
  .operation-log {
    height: 48px;
  }
  .continuous-story.stage-unfolded .battery-machine {
    top: 70%;
    height: 51svh;
  }
}
@media (prefers-reduced-motion: reduce) {
  .summary-headline h2 i,
  .summary-section .closing-principle article,
  .summary-section::before {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}
.battery-machine.charge.is-running .electron-circuit i {
  animation: electron-route-charge 4.2s linear var(--particle-delay) 1 both;
}
.battery-machine.discharge.is-running .electron-circuit i {
  animation: electron-route-discharge 4.2s linear var(--particle-delay) 1 both;
}
.summary-section {
  background: #f1eee6;
}
.summary-section::before,
.summary-section::after {
  display: none;
}
.summary-section .takeaway {
  isolation: isolate;
  overflow: visible;
  border: 1px solid rgba(109, 79, 43, .3);
  border-radius: 11px 16px 9px 14px / 8px 13px 10px 15px;
  background:
    radial-gradient(
      ellipse at 18% 26%,
      transparent 0 12%,
      rgba(92, 68, 40, .085) 12.4% 12.9%,
      transparent 13.3% 20%,
      rgba(92, 68, 40, .06) 20.4% 20.8%,
      transparent 21.2%),
    radial-gradient(
      ellipse at 77% 64%,
      transparent 0 15%,
      rgba(92, 68, 40, .07) 15.4% 15.9%,
      transparent 16.3% 23%,
      rgba(92, 68, 40, .05) 23.4% 23.8%,
      transparent 24.2%),
    repeating-linear-gradient(
      17deg,
      transparent 0 29px,
      rgba(78, 105, 102, .055) 30px,
      transparent 31px 48px),
    repeating-linear-gradient(
      -21deg,
      transparent 0 38px,
      rgba(116, 80, 43, .045) 39px,
      transparent 40px 63px),
    linear-gradient(
      103deg,
      #c8aa72 0%,
      #ead8ad 4%,
      #f0dfb8 13%,
      #e4c994 48%,
      #f2e3bf 83%,
      #d1ad70 97%,
      #b58c54 100%);
  color: #34291f;
  box-shadow:
    0 30px 80px rgba(64, 45, 25, .2),
    inset 0 0 45px rgba(114, 76, 34, .16),
    inset 0 1px rgba(255, 255, 255, .65);
  backdrop-filter: none;
}
.summary-section .takeaway::before,
.summary-section .takeaway::after {
  position: absolute;
  z-index: -1;
  top: -12px;
  bottom: -12px;
  width: 34px;
  border: 1px solid rgba(93, 62, 30, .34);
  background:
    linear-gradient(
      90deg,
      rgba(76, 46, 20, .35),
      transparent 22%,
      rgba(255, 240, 196, .56) 51%,
      transparent 77%,
      rgba(64, 39, 18, .32)),
    #c39b61;
  box-shadow: 0 10px 20px rgba(58, 39, 21, .22), inset 0 0 12px rgba(74, 45, 19, .2);
  content: "";
}
.summary-section .takeaway::before {
  left: -17px;
  border-radius: 60% 35% 42% 58% / 10% 8% 12% 10%;
}
.summary-section .takeaway::after {
  right: -17px;
  border-radius: 35% 60% 58% 42% / 8% 10% 10% 12%;
}
.summary-section .takeaway > * {
  position: relative;
  z-index: 1;
}
.summary-section .takeaway > p {
  color: #087e8e;
}
.summary-section .summary-headline > span {
  color: #806f59;
}
.summary-section .takeaway h2 {
  color: #2f261d;
  text-shadow: 0 1px rgba(255, 255, 255, .32);
}
.summary-section .closing-principle article {
  border-color: rgba(91, 66, 38, .22);
  background: rgba(255, 247, 226, .42);
  color: #463829;
  box-shadow: inset 0 1px rgba(255, 255, 255, .28);
}
.summary-section .closing-principle em {
  color: #087e8e;
}
.summary-section .takeaway .closing-principle p {
  color: #493a2b;
}
.summary-section .closing-principle b {
  background: #079caf;
  color: #f8f1df;
  box-shadow: 0 5px 16px rgba(7, 126, 142, .18);
}
.ending-brand {
  isolation: isolate;
  background: #d3dfe0 !important;
}
.ending-brand::before {
  position: absolute;
  inset: 4% 3%;
  z-index: 0;
  border-radius: 34px;
  background:
    radial-gradient(
      ellipse at 53% 54%,
      rgba(11, 160, 177, .25) 0 7%,
      transparent 7.5%),
    radial-gradient(
      ellipse at 29% 35%,
      rgba(102, 163, 116, .3) 0 7%,
      transparent 7.6%),
    radial-gradient(
      ellipse at 72% 29%,
      rgba(118, 174, 126, .28) 0 8%,
      transparent 8.6%),
    radial-gradient(
      ellipse at 77% 70%,
      rgba(98, 160, 116, .26) 0 10%,
      transparent 10.6%),
    radial-gradient(
      ellipse at 28% 73%,
      rgba(63, 173, 197, .24) 0 9%,
      transparent 9.7%),
    linear-gradient(
      31deg,
      transparent 0 38%,
      rgba(255, 250, 237, .88) 38.3% 41%,
      rgba(210, 145, 60, .45) 41.3% 42.1%,
      rgba(255, 250, 237, .82) 42.4% 45%,
      transparent 45.3%),
    linear-gradient(
      -28deg,
      transparent 0 42%,
      rgba(255, 250, 237, .84) 42.3% 45%,
      rgba(210, 145, 60, .4) 45.3% 46.1%,
      rgba(255, 250, 237, .82) 46.4% 49%,
      transparent 49.3%),
    linear-gradient(
      90deg,
      transparent 0 18%,
      rgba(255, 255, 255, .68) 18.2% 20.4%,
      transparent 20.7% 64%,
      rgba(255, 255, 255, .6) 64.3% 66.2%,
      transparent 66.5%),
    linear-gradient(
      0deg,
      transparent 0 22%,
      rgba(255, 255, 255, .64) 22.3% 24.2%,
      transparent 24.5% 72%,
      rgba(255, 255, 255, .58) 72.3% 74.1%,
      transparent 74.4%),
    repeating-linear-gradient(
      18deg,
      rgba(74, 108, 112, .055) 0 1px,
      transparent 1px 62px),
    repeating-linear-gradient(
      -18deg,
      rgba(74, 108, 112, .05) 0 1px,
      transparent 1px 74px);
  content: "";
  opacity: .82;
  -webkit-mask-image:
    radial-gradient(
      ellipse at center,
      #000 0 42%,
      rgba(0, 0, 0, .9) 56%,
      rgba(0, 0, 0, .38) 73%,
      transparent 94%);
  mask-image:
    radial-gradient(
      ellipse at center,
      #000 0 42%,
      rgba(0, 0, 0, .9) 56%,
      rgba(0, 0, 0, .38) 73%,
      transparent 94%);
  transform: perspective(900px) rotateX(9deg) scale(1.05);
}
.ending-brand::after {
  position: absolute;
  left: 34%;
  top: 52%;
  z-index: 1;
  width: 31px;
  height: 31px;
  border: 6px solid rgba(0, 164, 184, .72);
  border-radius: 50% 50% 50% 0;
  background: rgba(237, 248, 247, .86);
  box-shadow: 0 0 0 9px rgba(0, 164, 184, .1), 0 12px 22px rgba(44, 87, 91, .16);
  content: "";
  opacity: .62;
  transform: rotate(-45deg);
}
.ending-brand-inner,
.ending-brand-tagline {
  z-index: 2;
}
.ending-brand-inner {
  position: relative;
  transform: translateY(4%);
}
.ending-brand-tagline {
  left: clamp(46px, 13vw, 210px);
  top: clamp(92px, 13vw, 168px);
  right: auto;
  bottom: auto;
}
.ending-brand-tagline strong {
  margin-bottom: 11px;
  font-size: clamp(1.28rem, 2.15vw, 1.82rem);
}
.ending-brand-tagline p {
  font-size: clamp(.82rem, 1.08vw, .98rem);
}
@media (max-width: 700px) {
  .summary-section {
    padding-inline: 25px;
  }
  .summary-section .takeaway {
    padding: 38px 26px 42px;
  }
  .summary-section .takeaway::before,
  .summary-section .takeaway::after {
    top: -8px;
    bottom: -8px;
    width: 20px;
  }
  .summary-section .takeaway::before {
    left: -10px;
  }
  .summary-section .takeaway::after {
    right: -10px;
  }
  .ending-brand::before {
    inset: 8% -24%;
    transform: perspective(720px) rotateX(7deg) scale(1.02);
  }
  .ending-brand::after {
    left: 19%;
    top: 51%;
    width: 23px;
    height: 23px;
    border-width: 5px;
  }
  .ending-brand-inner {
    transform: translateY(6%);
  }
  .ending-brand-tagline {
    left: 50%;
    top: 72px;
    width: max-content;
    max-width: calc(100vw - 36px);
    transform: translateX(-50%);
  }
  .ending-brand-tagline strong {
    font-size: 1.28rem;
  }
  .ending-brand-tagline p {
    font-size: .82rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .ending-brand::before {
    transform: none;
  }
}
.summary-section {
  padding-inline: clamp(18px, 4vw, 58px);
  background: #eee9df;
}
.summary-section .takeaway {
  display: flex;
  min-height: clamp(590px, 60vw, 690px);
  max-width: 1160px;
  flex-direction: column;
  justify-content: center;
  padding: clamp(92px, 10vw, 138px) clamp(112px, 13vw, 180px);
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #39291e;
  box-shadow: none;
}
.summary-section .takeaway::before,
.summary-section .takeaway::after {
  display: none;
}
.summary-section .takeaway > p {
  color: #80372c;
}
.summary-section .summary-headline > span {
  color: #725d49;
}
.summary-section .takeaway h2 {
  color: #342319;
  text-shadow: 0 1px rgba(255, 248, 226, .76);
}
.summary-section .closing-principle {
  gap: 10px;
  margin-top: 32px;
}
.summary-section .closing-principle article {
  border: 1px solid rgba(83, 52, 27, .24);
  border-radius: 3px;
  background: rgba(250, 239, 207, .57);
  color: #39291e;
  box-shadow: 0 7px 20px rgba(73, 45, 24, .08), inset 0 1px rgba(255, 255, 255, .35);
  backdrop-filter: blur(1.5px);
}
.summary-section .closing-principle em {
  color: #71362c;
}
.summary-section .takeaway .closing-principle p {
  color: #3d2d21;
}
.summary-section .closing-principle b {
  background: #80372c;
  color: #f8edd5;
  box-shadow: 0 5px 14px rgba(92, 49, 35, .18);
}
.summary-section .closing-principle article:nth-child(2) > b {
  background: #4e4833;
}
@media (max-width: 700px) {
  .summary-section {
    padding: 54px 14px;
  }
  .summary-section .takeaway {
    width: min(100%, 430px);
    min-height: 0;
    aspect-ratio: 1026 / 1487;
    padding: 74px 38px 66px;
    background-image: none;
  }
  .summary-section .takeaway > p {
    margin-bottom: 12px;
    font-size: .66rem;
  }
  .summary-section .summary-headline > span {
    margin-bottom: 8px;
    font-size: .88rem;
  }
  .summary-section .takeaway h2 {
    font-size: clamp(1.42rem, 7vw, 1.82rem);
    line-height: 1.18;
  }
  .summary-section .closing-principle {
    gap: 7px;
    margin-top: 18px;
  }
  .summary-section .takeaway .closing-principle article {
    min-height: 0;
    gap: 10px;
    padding: 10px 11px;
  }
  .summary-section .closing-principle b {
    flex-basis: 34px;
    width: 34px;
    height: 34px;
    font-size: .58rem;
  }
  .summary-section .closing-principle em {
    margin-bottom: 3px;
    font-size: .59rem;
  }
  .summary-section .takeaway .closing-principle p {
    font-size: .64rem;
    line-height: 1.48;
  }
}
@media (max-width: 370px) {
  .summary-section .takeaway {
    padding: 68px 34px 60px;
  }
  .summary-section .takeaway h2 {
    font-size: 1.34rem;
  }
  .summary-section .takeaway .closing-principle p {
    font-size: .6rem;
  }
}
.ending-brand::before {
  inset: auto;
  left: 50%;
  top: 52%;
  width: min(1100px, 96vw);
  height: auto;
  aspect-ratio: 482 / 267;
  border-radius: 22px;
  background: url(../images/newsis-location-map.png) center / 100% 100% no-repeat;
  filter: grayscale(.28) sepia(.08) saturate(.56) contrast(.82) brightness(1.12) blur(1.15px);
  opacity: .43;
  -webkit-mask-image:
    radial-gradient(
      ellipse at center,
      #000 0 46%,
      rgba(0, 0, 0, .84) 63%,
      rgba(0, 0, 0, .24) 83%,
      transparent 98%);
  mask-image:
    radial-gradient(
      ellipse at center,
      #000 0 46%,
      rgba(0, 0, 0, .84) 63%,
      rgba(0, 0, 0, .24) 83%,
      transparent 98%);
  transform: translate(-50%, -50%);
}
.ending-brand::after {
  display: none;
}
.ending-brand-inner {
  position: static;
  transform: translateY(4%);
}
.ending-brand-lockup {
  position: static;
}
.ending-brand-character {
  position: absolute;
  left: 32.9%;
  top: 56%;
  z-index: 3;
  margin: 0;
  filter: drop-shadow(0 12px 18px rgba(42, 59, 60, .18));
  transform: translate(-50%, -92%);
}
.ending-brand-logo,
.ending-brand-tagline,
.ending-brand-credit-row {
  text-shadow: 0 1px 0 rgba(255, 255, 255, .78), 0 4px 16px rgba(221, 232, 232, .86);
}
.ending-brand-logo {
  position: relative;
  z-index: 4;
}
.ending-brand-tagline {
  z-index: 4;
}
@media (prefers-color-scheme: dark) {
  .ending-brand-character {
    filter: brightness(1.3) contrast(.94) drop-shadow(0 12px 18px rgba(42, 59, 60, .18));
  }
}
@media (max-width: 700px) {
  .ending-brand::before {
    top: 54%;
    width: 108vw;
    border-radius: 14px;
    filter: grayscale(.3) sepia(.08) saturate(.52) contrast(.8) brightness(1.14) blur(1px);
    opacity: .4;
  }
  .ending-brand-inner {
    transform: translateY(6%);
  }
  .ending-brand-character {
    left: 30.8%;
    top: 56.8%;
    margin: 0;
    transform: translate(-50%, -92%);
  }
}
.summary-section {
  position: relative;
  min-height: clamp(720px, 74vw, 980px);
  padding: clamp(132px, 15vw, 190px) clamp(20px, 5vw, 72px) clamp(118px, 13vw, 172px);
  background: #d8bb78;
}
.summary-section::before {
  position: absolute;
  inset: 0;
  z-index: -2;
  display: block;
  background: url(../images/summary-map-texture-v3.png) center / cover no-repeat;
  content: "";
  opacity: .9;
  -webkit-mask-image: none;
  mask-image: none;
  transform: none;
}
.summary-section::after {
  position: absolute;
  inset: 0;
  z-index: -1;
  display: block;
  background:
    linear-gradient(
      180deg,
      #081018 0%,
      rgba(8, 16, 24, .76) 3%,
      transparent 15%,
      transparent 82%,
      rgba(211, 223, 224, .5) 95%,
      #d3dfe0 100%),
    radial-gradient(
      ellipse at 50% 48%,
      rgba(255, 246, 215, .35) 0 28%,
      transparent 67%);
  content: "";
  pointer-events: none;
}
.summary-section .takeaway {
  position: relative;
  display: block;
  width: auto;
  min-height: 0;
  max-width: 1080px;
  aspect-ratio: auto;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: #302218;
  box-shadow: none;
  backdrop-filter: none;
}
.summary-section .takeaway::before {
  position: absolute;
  inset: -42px -52px;
  z-index: -1;
  display: block;
  width: auto;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(
      ellipse at center,
      rgba(255, 245, 213, .5) 0%,
      rgba(255, 245, 213, .25) 46%,
      transparent 76%);
  box-shadow: none;
  content: "";
  pointer-events: none;
}
.summary-section .takeaway::after {
  position: absolute;
  inset: -24px -30px;
  z-index: -1;
  display: block;
  width: auto;
  border: 0;
  border-radius: 0;
  background:
    radial-gradient(
      ellipse at 8% 84%,
      transparent 0 9%,
      rgba(82, 55, 31, .08) 9.4% 9.8%,
      transparent 10.2% 14%,
      rgba(82, 55, 31, .06) 14.4% 14.8%,
      transparent 15.2%),
    radial-gradient(
      ellipse at 93% 10%,
      transparent 0 8%,
      rgba(82, 55, 31, .075) 8.4% 8.8%,
      transparent 9.2% 13%,
      rgba(82, 55, 31, .055) 13.4% 13.8%,
      transparent 14.2%);
  box-shadow: none;
  content: "";
  pointer-events: none;
}
.summary-section .takeaway > p {
  display: inline-flex;
  margin: 0 0 30px;
  padding: 7px 0 6px;
  border-top: 1px solid rgba(78, 49, 27, .42);
  border-bottom: 1px solid rgba(78, 49, 27, .26);
  color: #69382b;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  font-size: .72rem;
  letter-spacing: .18em;
}
.summary-section .summary-headline {
  position: relative;
  padding-bottom: 34px;
}
.summary-section .summary-headline::after {
  position: absolute;
  left: 0;
  bottom: 0;
  width: min(520px, 72%);
  border-bottom: 2px solid rgba(78, 49, 27, .45);
  content: "";
}
.summary-section .summary-headline > span {
  margin-bottom: 10px;
  color: #725c46;
  font-size: clamp(1rem, 1.9vw, 1.55rem);
  letter-spacing: -.025em;
}
.summary-section .takeaway h2 {
  max-width: 880px;
  color: #2b1e15;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  font-size: clamp(2.25rem, 5vw, 4.9rem);
  font-weight: 900;
  letter-spacing: -.065em;
  line-height: 1.16;
  text-shadow: 0 1px rgba(255, 248, 226, .72);
}
.summary-section .closing-principle {
  position: relative;
  gap: clamp(26px, 5vw, 70px);
  margin-top: 54px;
}
.summary-section .closing-principle::before {
  position: absolute;
  left: 50%;
  top: 4%;
  bottom: 4%;
  display: block;
  width: 1px;
  background:
    linear-gradient(
      transparent,
      rgba(78, 49, 27, .32) 18%,
      rgba(78, 49, 27, .32) 82%,
      transparent);
  content: "";
}
.summary-section .closing-principle article {
  align-items: flex-start;
  min-height: 0;
  padding: 20px 0 18px;
  border: 0;
  border-top: 1px solid rgba(78, 49, 27, .34);
  border-bottom: 1px solid rgba(78, 49, 27, .17);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
}
.summary-section .closing-principle b {
  flex-basis: 42px;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(84, 47, 33, .42);
  background: rgba(111, 56, 42, .88);
  color: #f7e8c8;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  box-shadow: none;
}
.summary-section .closing-principle article:nth-child(2) > b {
  background: rgba(71, 66, 45, .9);
}
.summary-section .closing-principle em {
  color: #60372d;
  font-family:
    Georgia,
    "Noto Sans KR",
    serif;
  font-size: .8rem;
  letter-spacing: .02em;
}
.summary-section .takeaway .closing-principle p {
  color: #38291e;
  font-size: clamp(.78rem, 1.15vw, .94rem);
  line-height: 1.8;
}
.ending-brand-character {
  top: 56.7%;
}
@media (max-width: 700px) {
  .summary-section {
    min-height: 0;
    padding: 116px 24px 118px;
  }
  .summary-section::before {
    background-position: 44% center;
    background-size: auto 100%;
  }
  .summary-section::after {
    background:
      linear-gradient(
        180deg,
        #081018 0%,
        rgba(8, 16, 24, .7) 2.5%,
        transparent 11%,
        transparent 88%,
        rgba(211, 223, 224, .5) 96%,
        #d3dfe0 100%),
      radial-gradient(
        ellipse at 50% 48%,
        rgba(255, 246, 215, .38),
        transparent 75%);
  }
  .summary-section .takeaway {
    width: min(100%, 430px);
    aspect-ratio: auto;
    padding: 0;
    background: transparent;
  }
  .summary-section .takeaway::before {
    inset: -24px -18px;
  }
  .summary-section .takeaway::after {
    inset: -18px -10px;
  }
  .summary-section .takeaway > p {
    margin-bottom: 22px;
    font-size: .62rem;
  }
  .summary-section .summary-headline {
    padding-bottom: 25px;
  }
  .summary-section .summary-headline::after {
    width: 84%;
  }
  .summary-section .summary-headline > span {
    font-size: .94rem;
  }
  .summary-section .takeaway h2 {
    font-size: clamp(1.72rem, 8vw, 2.25rem);
    line-height: 1.2;
  }
  .summary-section .closing-principle {
    gap: 18px;
    margin-top: 34px;
  }
  .summary-section .closing-principle::before {
    display: none;
  }
  .summary-section .takeaway .closing-principle article {
    gap: 12px;
    padding: 15px 0 14px;
  }
  .summary-section .closing-principle b {
    flex-basis: 38px;
    width: 38px;
    height: 38px;
  }
  .summary-section .closing-principle em {
    margin-bottom: 5px;
    font-size: .68rem;
  }
  .summary-section .takeaway .closing-principle p {
    font-size: .72rem;
    line-height: 1.62;
  }
  .ending-brand-character {
    top: 56.8%;
  }
}
@media (max-width: 700px) {
  .operation-log-panel {
    top: 194px;
  }
  .operation-log {
    height: 84px;
    overflow-y: scroll;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(8, 182, 203, .72) rgba(255, 255, 255, .06);
  }
  .operation-log::-webkit-scrollbar {
    width: 4px;
  }
  .operation-log::-webkit-scrollbar-track {
    background: rgba(255, 255, 255, .055);
  }
  .operation-log::-webkit-scrollbar-thumb {
    border-radius: 999px;
    background: rgba(8, 182, 203, .76);
  }
}
@media (max-width: 420px) and (max-height: 700px) {
  .operation-log-panel {
    top: 180px;
  }
  .operation-log {
    height: 68px;
  }
}
.ending-brand::before {
  inset: 0;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  aspect-ratio: auto;
  border-radius: 0;
  background-image: url(../images/newsis-location-map.png);
  background-position: 10% 55%;
  background-size: 110% auto;
  background-repeat: no-repeat;
  filter: grayscale(.18) saturate(.68) contrast(.82) brightness(1.08) blur(1.2px);
  opacity: .48;
  -webkit-mask-image:
    radial-gradient(
      circle at 24% 64%,
      #000 0 15%,
      rgba(0, 0, 0, .88) 32%,
      rgba(0, 0, 0, .42) 61%,
      transparent 94%);
  mask-image:
    radial-gradient(
      circle at 24% 64%,
      #000 0 15%,
      rgba(0, 0, 0, .88) 32%,
      rgba(0, 0, 0, .42) 61%,
      transparent 94%);
  transform: none;
}
.ending-brand-inner {
  position: relative;
  transform: translateY(4%);
}
.ending-brand-lockup {
  position: relative;
}
.ending-brand-character {
  position: static;
  left: auto;
  top: auto;
  z-index: auto;
  margin-right: -.62em;
  filter: drop-shadow(0 12px 18px rgba(42, 59, 60, .18));
  transform: translateY(.61em);
}
@media (prefers-color-scheme: dark) {
  .ending-brand-character {
    filter: brightness(1.3) contrast(.94) drop-shadow(0 12px 18px rgba(42, 59, 60, .18));
  }
}
@media (max-width: 700px) {
  .ending-brand::before {
    background-position: 21% 17%;
    background-size: auto 112%;
    filter: grayscale(.2) saturate(.64) contrast(.8) brightness(1.1) blur(1px);
    opacity: .46;
    -webkit-mask-image:
      radial-gradient(
        circle at 25.6% 66.7%,
        #000 0 14%,
        rgba(0, 0, 0, .88) 30%,
        rgba(0, 0, 0, .4) 60%,
        transparent 94%);
    mask-image:
      radial-gradient(
        circle at 25.6% 66.7%,
        #000 0 14%,
        rgba(0, 0, 0, .88) 30%,
        rgba(0, 0, 0, .4) 60%,
        transparent 94%);
  }
  .ending-brand-inner {
    position: relative;
    transform: translateY(6%);
  }
  .ending-brand-character {
    position: static;
    left: auto;
    top: auto;
    margin-right: -.58em;
    transform: translateY(.58em);
  }
}

/* The repository-wide VISUAL NEWSIS header is injected from ../assets. */
.topbar {
  display: none !important;
}
